MONTREAL -- The Canadiens almost let the game get away.
With a three-goal lead going into the final period, Montreal conceded three straight goals to Detroit -- including two in a span of 36 seconds -- before recovering for the win.
Brian Gionta scored his second goal of the game late in the third period to give the surging Canadiens a 5-3 victory over the Red Wings on Saturday night.
Michael Bournival, Max Pacioretty and Alex Galchenyuk also scored for Montreal, while Carey Price made 34 saves. The Canadiens are now 10-2-0 in its last 12 games.
''That's proof that there's a lot of character on this team,'' Montreal forward Michael Bournival said. ''We've done this a few times this year. Even if we concede three straight goals, we're able to bounce back. We knew the Red Wings never give up. They had us on our heels to start the third, but we got back on our feet.''
Pavel Datsyuk scored his 16th of the year at 5:11 of the third on the power play, and Luke Glendening reduced the deficit again at 5:47 on a soft backhand shot that Price got a piece of but couldn't keep out.
Niklas Kronwall tied it up for Detroit midway through the period, beating Price with a slap shot from the point, through traffic, on the man advantage.
Instead of keeling over, however, the Canadiens answered Kronwall's game-tying goal with renewed energy.
''At that point, you just reset, and go back to what made you successful in the first half of the game,'' Gionta said. ''You have to make sure you don't lose that momentum. It's much easier at home, when you have the crowd. You build some momentum off of them. You make a good play, and things start to snowball the right way again.''
Jonas Gustavsson finished with 19 saves for Detroit, which snapped a four-game win streak.
''We have to be better than we were tonight,'' Red Wings coach Mike Babcock said. ''We've been on a good run here where we play hard. I didn't think there was a problem with our energy or our commitment to working hard tonight. We didn't execute well enough with the puck.''
With the score tied 3-all, Gionta was credited with his second goal of the game when his shot, which was initially saved by Gustavsson, bounced off defenseman Brian Lashoff's skate and into the net. Galchenyuk added a fifth for the Canadiens two minutes later.
Montreal remained in second place in the Atlantic, four points clear of division-rival Tampa Bay, which lost on Saturday.
Despite the loss, the Red Wings are holding on to the first of two wild-card spots in the East.
Montreal opened the scoring when Bournival got his seventh of the year -- and first in 37 games -- with 5:44 left in the first period.
The rookie got the play going, intercepting the puck in the neutral zone before feeding Ryan White at the blue line. White held off defenseman Kyle Quincey and took a weak backhand shot on Gustavsson, who kicked the puck straight to a wide-open Bournival.
''That's Ryan White's goal,'' Bournival said. ''He charged the net. He made all the effort. I just had an open net. It felt good. But all the credit goes to Ryan.''
Pacioretty made it 2-0 on a great individual effort at 8:52 of the second, going around Kronwall with speed at the Canadiens' blue line to generate a breakaway. Pacioretty fended off a diving Lashoff before beating Gustavsson blocker-side for his ninth goal in his last eight games.
With his 39th goal, Pacioretty moved into a tie with San Jose's Joe Pavelski for third in NHL scoring.
Gionta got in on the action five minutes later, scoring his 16th of the season after a set play off the end boards landed perfectly on his stick, unmarked in front of the net. The goal was Montreal's second in the period on only their third shot.
The Canadiens play three more times before the start of their first-round playoff series. ... The game was Gionta's 300th with Montreal. ... D Douglas Murray served his second of a three-game suspension for his elbow to the head of Tampa Bay's Mike Kostka. ... The Red Wings are seeking a 23rd consecutive playoff appearance.