Erik Cole added a pair of goals off his own rebounds for the Hurricanes, who stayed on the attack almost the entire way. Carolina finished with a season-high 48 shots to keep steady pressure on Montreal goalie Cristobal Huet throughout, while Cam Ward finished with 25 saves on the other end.
Michael Ryder and Tomas Plekanec scored for the Canadiens, who had won four of five. Huet finished with 44 saves.
The Hurricanes had lost three of four, prompting coach Peter Laviolette to meet with his players in groups after Wednesday's practice and discuss ways to get the Stanley Cup champions refocused. The Hurricanes responded with a strong effort, surpassing their previous season high of 40 shots - set three times - before finally pushing ahead with the scores from Williams and Belanger.
With the score tied 2-2, Williams took a pass from Ray Whitney and flipped a backhand shot by Huet from near the right circle for the go-ahead score at 12:27 of the third. Then, after a battle along the boards in the Montreal zone, Belanger corralled the puck and flipped a shot by Huet for a 4-2 lead at 13:13.
The Canadiens struck first when Ryder took a short pass from Guillaume Latendresse and beat Ward from the right side of the crease midway through the first period.
But Cole evened the score late in the period when he beat Radek Bonk for a shot on Huet on the left side, then got to the loose rebound at the top of the crease and pushed it through heavy traffic at 16:24.
Cole followed with another rebound score, beginning with a push up ice by Scott Walker. He left the puck to the trailing Cole, who fired a shot from outside the right circle. Huet made the stop, but the puck bounced all the way back out to Cole, whose second shot from the circle slipped by Huet on the stick side at 8:23 of the second.
Plekanec scored late in the period to tie it before the Hurricanes broke through in the third.
Notes: Glen Wesley assisted on Cole's goal for his third point of the season. ... Ryder's goal was his sixth of the season. ... The Hurricanes face Boston at home on Saturday before starting a four-game road trip. ... The Canadiens fell to 10-3-3 when being outshot by an opponent. ... Huet hadn't lost since a 2-1 loss to New Jersey on Nov. 4.