MONTREAL -- The Carolina Hurricanes came up with a perfect storm of their own for a big win in snow-snarled Montreal.
Ruutu got behind Carey Price and brought the puck around the left post before sliding it over the goal line after a shot squirted through the Montreal goalie's pads.
Eric Staal had three points for Carolina, including his 14th goal in the second. Sergei Samsonov had a goal and an assist, and Cam Ward made 26 saves to help the Hurricanes improve to 4-1-3 in their last eight games.
"It's something about this building and something about playing this team that brings out the best in a lot of guys in our room," Staal said. "This is a great building to play in. It was a huge snowstorm outside and it was jammed in warmups.
"It was a lot of fun to try and quiet down 21-plus thousand and score some goals, so it was a huge win for our team. We came to compete, we came to skate and it was a solid effort."
"I thought after the first we could have been up three or four," Carolina coach Paul Maurice said. "We hit some posts and some crossbars, we played a great road period and maybe got caught struggling with the puck a little bit.
"But in this building when they get rolling a little bit, you know, they get a couple of hits and the fans get behind them, you have to weather that storm and our guy made the saves we needed so I thought we deserved to win, and it was a good win."
The Canadiens ended a stretch of 10 of 11 at home, including a 4-3 overtime win over Buffalo on Saturday night.
"We knew this game would be tough. We knew we'd be challenged," Montreal defenseman Mike Komisarek said. "It took us a while to find our stride but we feel good about our team heading into the Christmas break. We haven't played our best hockey yet."
Price returned from a lower-body injury and made 23 saves in his first start for the Canadiens in seven games.
Samsonov opened the scoring with his fifth goal 13:48 in, and Staal restored the Hurricanes' lead with a power-play goal 14:52 into the second.
"We played well and it was nice to take two points home," Samsonov said. "It was a big road game. We're in a battle for a playoff spot and we're just trying to pick up some points."
Lang drove a shot past Ward from the left side with Carolina's Matt Cullen serving a slashing penalty that was unpopular with the Bell Centre crowd of 21,273 because it negated a potential tying goal.
Referee Francois St. Laurent, the only on-ice official originally scheduled to work the game, called off an apparent Montreal goal 11:43 into the third, ruling that he had whistled down the play to call the penalty on Cullen before Guillaume Latendresse shot the puck into the net.
"I was so mad," Latendresse said. "The same thing happened in overtime and they said it was a goal, but it's a tough call for them and we just have to accept it and play."
It was the third time the Canadiens put the puck in the net during the game after the whistle had been blown by the referees.
Marc Joannette called his second game in Montreal in as many nights as he replaced Kelly Sutherland, who was unable to travel because of snowstorms in the Northeast.
D'Agostini drew the Canadiens even at 1 early in the second. The rookie right wing took Alex Tanguay's goalmouth pass and shot the puck into a wide open net 6:10 into the middle period for sixth goal in 11 games since he was called up from the minors.
- Linesmen Steve Barton and Pierre Champoux worked the game in place of Scott Driscoll and Darren Gibbs, who were originally scheduled to officiate along with St. Laurent and Sutherland. Driscoll, Gibbs and Sutherland were unable to travel to Montreal because of snowstorms in the Northeast.
- Canadiens backup G Jaroslav Halak went 3-3 while starting the previous six games.