Updated

David Desharnais and Brian Gionta scored 67 seconds apart early in the first period, Carey Price made 12 of his 37 saves in the third, and the Montreal Canadiens beat the Vancouver Canucks 3-2 on Tuesday night.

Andrei Kostitsyn ended a 12-game goal drought, despite being demoted to the fourth line, as Montreal won in Vancouver for the first time in over a decade.

Mikael Samuelsson and Henrik Sedin scored power-play goals, and Roberto Luongo made 22 saves as the Canucks lost at home in regulation for the fifth time this season (21-5-5). Vancouver's lead atop the NHL is down to one point over Eastern Conference-leading Philadelphia, and five ahead of Detroit in the West.

Price, a British Columbia native, punched a hole in the visiting dressing room wall after giving up seven goals in front of family and friends during a loss early last season. His return went better as he made a handful of game-saving stops in the third period.

His best save was a blocker stop on Alex Burrows' deflection with two minutes left as Montreal won in Western Canada for the first time in three years.

It was the Canadiens' fifth win in 30 games in Western Canada. They went 0-2 in Alberta against Edmonton and Calgary on this trip, losing by a combined score of 8-1.

Coming off a 4-0 loss in the outdoor Heritage Classic at Calgary on Sunday, and with only one win in seven games (1-4-2), the Canadiens switched all four forward lines and stressed defensive play. It paid off as they roared to a 14-1 shot advantage in the first 10 minutes in a building where they had lost seven straight, dating to November 2000. Montreal got goals from three lines.

Desharnais opened the scoring on a breakaway 6:07 in, tucking the puck between Luongo's legs on a backhand deke. Gionta doubled the lead just over a minute later on a rebound of P.K. Subban's point shot after Luongo failed to control a sharp-angle shot. Max Pacioretty almost scored again two minutes later, but hit the post.

Vancouver closed the shot gap to 16-12 by the end of the first period after two straight chances for their No. 1 ranked power play, and scored after Price gave them another advantage three minutes into the second by shooting the puck over the glass.

Sedin scored 20 seconds later, beating Price through Ryan Kesler's screen. By the midway point of the second period, the Canucks had a 23-17 shot advantage — and a 22-3 edge over 20 minutes.

After Price made a couple of good saves on another power play, Kostitsyn made it 3-1 on the fourth shot.

Montreal killed a 37-second, 5-on-3 power play to end the second period, but Samuelsson closed the gap with a power-play goal 1:06 into the third. Daniel Sedin assisted, giving him 78 points, three more than Tampa Bay's Steven Stamkos for the NHL scoring lead.

Notes: Both teams were missing three regular defensemen, but the Canucks got Dan Hamhuis back from a concussion that kept him out five games. Keith Ballard returned after missing six with a sprained knee. ... Actor Tom Cruise, who is in town filming Mission Impossible 3, watched the game from the Canucks' management box. ... Scott Gomez's assist on Gionta's goal was his 500th.