Calgary, Alberta: It had been so long for Byron Froese that he wasn’t sure how to celebrate.

Froese scored for the first time in 22 months and had an assist to help the Montreal Canadiens beat the Calgary Flames 3-2 on Friday night.

“It feels really good,” the 26-year-old Froese said. “From the celebration, you could see, I couldn’t think about anything else but to raise my hands.”

Nicolas Deslauriers and Brendan Gallagher also scored and Carey Price made 21 saves in his 12th straight start since returning from a lower-body injury. The Canadiens are 8-3-1 since Price returned.

Froese opened the scoring midway through the first period when he deflected Jordie Benn’s point shot past Mike Smith for his first goal since Feb. 20, 2016, when he was with the Toronto Maple Leafs. Froese then assisted on Deslauriers’ goal in the second.

The line of Froese, Daniel Carr and Deslauriers make up three of Montreal’s top four scorers for December with 23 combined points.

“You can’t call them a fourth line anymore because they’re not playing like one,” Montreal coach Claude Julien said. “They’ve been doing that for a while. They just play the right way. They’re extremely solid and strong along the walls in both ends.”

Froese has one goal and six assists in eight December games. He had just two goals and five points through his first 72 NHL games.

“Once we had that little bit of success that first game with Carr and (Deslauriers), you grip the stick a little bit looser and feel more confident and more comfortable,” Froese said.

Gallagher gave the Canadiens a 3-0 lead in the third, before the Flames made it close on goals by Micheal Ferland and Matthew Tkachuk.

“There’s no system for outworked,” Flames coach Glen Gulutzan said. “We’ve put together a good string of games, but the one that irks you the most is the ones when you get out-battled and that’s tonight and I’m not happy.”

Meanwhile, Buffalo coach Phil Housley spent the past few days urging the Sabres to shoot from any angle in a bid to spark the team’s slow-starting offence.

Ryan O’Reilly validated Housley’s message by scoring on a bad-angle shot on Friday night, sparking a four-goal third period for Buffalo in a 4-2 win over the Philadelphia Flyers.

Rather than rue the chances the Sabres missed through 40 minutes, including Evander Kane’s penalty shot 3:42 into the game, the Sabres celebrated winning for just the fourth time in 20 games.

Kane made up for his miss by deflecting in Josh Gorges’ point shot, and Buffalo avoided a late collapse. Jack Eichel sealed the win by scoring two empty-netters in the final 67 seconds.

“Obviously, it was kind of frustrating how many Grade A chances we had,” O’Reilly said. “I wasn’t shooting very well and then I get a chance like that. I was just trying to put it in that upper area and get a good bounce.”

Collecting Kane’s drop pass in the circle, O’Reilly sped into the left corner and snapped a shot that somehow sneaked in behind Brian Elliott, who was hugging the post.

“It sounds simple,” Housley said, referring to how his players followed his shoot-first message. “We easily could’ve got deterred and wilted, but our guys stayed strong mentally.”

Robin Lehner stopped 33 shots. He was working on a shutout before Michael Raffl tipped in Claude Giroux’s point shot to make it 2-1 with 2:10 left.

After Eichel scored his 12th of the season, the Flyers responded with Shayne Gostisberhere’s one-timer from the right circle. But Eichel sealed the win by scoring with 1 second remaining.

Buffalo bounced back from a 3-0 loss to Boston on Tuesday. The Sabres also overcame their own slow-starting offence that has scored an NHL-worst 15 first-period goals.

“That’s a good step forward,” Lehner said. “We didn’t get rewarded after 40, yet we score two and we get two empty-netters. That’s great.”

Elliott finished with 33 saves in his 400th career game. Though Raffl scored on the power play, the Flyers came up empty on their first four opportunities with the man advantage, including 40 seconds of 5-on-3 play early in the third period.

“Brian Elliott gave us a chance after two periods to go out and salvage the game in the third period, but we didn’t do it,” Philadelphia coach Dave Hakstol said. “We didn’t make enough plays under pressure tonight whether that was 5 on 5 or on the power play.”

The Flyers lost for just the second time in nine games, and had a three-game road winning streak snapped.

Elliott stopped 28 shots through 40 minutes, including a glove save on Kane’s penalty shot. He also stopped Kane twice and Kyle Okposo from the slot during a Sabres flurry in front 7 1/2 minutes into the second period.

“We can’t expect to win games when we’re playing like that,” Gostisbehere said. “(Elliott) gave us every chance possible to win that game.”