CALGARY -- Byron Froese scored his first goal in almost two years, and the Montreal Canadiens held on to defeat the Calgary Flames 3-2 at Scotiabank Saddledome on Friday.
Nicolas Deslauriers and Brendan Gallagher scored, and Carey Price made 21 saves for the Canadiens (16-15-4), who are 3-1-0 after a three-game losing streak.
[WATCH: All Canadiens vs. Flames highlights]
"We're not satisfied, and now we've got guys coming back from injury," Froese said. "We've got a healthy club now, so it's creating a lot of in-house competition. That's really going to motivate our guys and our club. Anytime you win a hockey game it's a good feeling, and you're going to be feeling good the next day too."
Micheal Ferland and Matthew Tkachuk scored, and Mike Smith made 32 saves for the Flames (18-15-3), who do not play again until Thursday. Calgary is 2-3-1 in its past six games.
"You never want to go into the break with a loss like this," Tkachuk said. "It [stinks]. I think it should be easy for me going home being distracted with all the family Christmas festivities, but when we get back we've got to remember this one. This shouldn't be the staple of our team, the way we played tonight. I don't want it to be."
Video: MTL@CGY: Smith lunges to blocker aside Gallagher
Gallagher ended a six-game point drought when he gave the Canadiens a 3-0 lead 3:10 into the third period. Artturi Lehkonen, who returned after missing 16 games with a lower-body injury, set up Gallagher.
"I was really starting to feel bad for my linemates," Gallagher said. "They deserved a little better. They created a lot of chances for me, so it was nice to put one in at the end."
Ferland made it 3-1 at 9:42, and Tkachuk got Calgary within 3-2 at 18:07 on the power play and with an extra attacker.
Video: MTL@CGY: Tkachuk pulls Flames within one with PPG
"We had a push at the end of the game, but it's too late," Flames forward Sam Bennett said. "If we got that push in the first 10 (minutes), I think it would have been a different game."
Froese scored his first goal with Montreal, and first in 22 months, when Jordie Benn's point shot deflected off him to put the Canadiens up 1-0 at 10:45 of the first period. The forward, who ended a 32-game drought, last scored on Feb. 20, 2016 for the Toronto Maple Leafs against the Philadelphia Flyers.
Video: MTL@CGY: Froese has puck deflect off him and in
"I think it hit the inside of my thigh. I think I was faced the wrong way too," Froese said. "I don't think I'd want it any other way."
That goal came after Max Pacioretty scored on Montreal's first shot 55 seconds into the first period, but Calgary successfully challenged that Paul Byron was offside.
Deslauriers put Montreal up 2-0 at 8:44 of the second period when he knocked a rebound of Froese's shot out of midair. Deslauriers has three of his four goals this season in his past two games.
"I don't know if you can call them a fourth line anymore," Gallagher said. "They're really contributing at both ends of the ice and it's good to see. I like the excitement they show when they contribute like that. It's definitely good to see."
Goal of the game
Gallagher's goal at 3:10 of the third period.
Video: MTL@CGY: Gallagher bangs home his own rebound
Save of the game
Price's save on Jankowski at 11:19 of the second period.
Video: MTL@CGY: Price denies two shots at the doorstep
Highlight of the game
Deslaurier's goal at 8:44 of the second period.
Video: MTL@CGY: Deslauriers smacks home puck out of midair
They said it
"I think this is one of our better games of the year. Obviously the last eight minutes we would've liked to change, but we knew they were going to come with a push at some point. We did a really good job of controlling the neutral zone and using our speed. That was a big part for us. It created a lot of scoring chances and led to some goals." -- Canadiens forward Brendan Gallagher
"I feel like we just didn't have the puck all night long. They played a good game, and I think they came out with that mentality. When we got pucks into their end, it was easy for them to get out and it was hard for us to get out of our zone, so I don't know. I think it just had to do with us getting outworked, every single player on our team." -- Flames forward Matthew Tkachuk
Need to know
Price is 8-3-1 making 12 straight starts since returning from a lower-body injury Nov. 25. … Canadiens forward Daniel Carr had an assist and has 10 points (three goals, seven assists) in nine games since being recalled from Laval of the American Hockey League. … Flames forward Jaromir Jagr (lower body) missed his second straight game and 14th this season. … Calgary placed defenseman Travis Hamonic (groin) on injured reserve.
Canadiens: At the Edmonton Oilers on Saturday (7 p.m. ET; SN, TVA Sports, NHL.TV)
Flames: At the San Jose Sharks on Thursday (10:30 p.m. ET; NBCSCA, SNW, NHL.TV)
Video: Canadiens hang on to edge Flames on the road, 3-2