Hamelin, of Sainte-Julie, Que., followed up Saturday's bronze medal-winning performance in the 1,500 metre event with a silver medal-time of 41.332 seconds in the 500.
He narrowly missed out on what would have been his first World Cup gold of the season by finishing a mere 0.018 behind Robert Seifert of Germany (41.314).
Travis Jayner of the United States was third in 41.398, and Hamelin's younger brother, Francois, was fourth in 41.443.
"My day went really well. I was confident, my blades were running well and the ice seemed to glide better than yesterday and Friday," Charles Hamelin said in a release. "I had a better start in the final than I did in the semifinal. It was tight when we got to the blocks and I lost a bit of speed as we bumped.
"As a result, the Chinese skater [Dajing Wu] passed me in the straight … I did retake Wu with a lap-and-a-half left. I tried to pass the German [Seifert] but he was protecting the inside and I didn't have the legs to take him on the outside.
"I really liked my attitude in the race," Hamelin said. "I was aggressive and showed that I could be versatile by passing on the inside and the outside."
Hamelin's World Cup tally for 2012 is now four silver and two bronze, marking the end of each of his races by finishing on the podium.