Andrew Mangiapane had a goal and an assist, and Dillon Dube and Elias Lindholm also scored for the Flames in the first of three straight games between the teams. Calgary pulled six points behind Montreal for the fourth and final playoff spot in the North Division.
Jacob Markstrom made 17 saves and improved to 5-1 against the Canadiens this season.
“They had a little more jump than us,” Canadiens coach Dominique Ducharme said. “Coming out of the corners, beating our guys back to the net, those are little things that you pile them up, you can pay the price for those things and we did.”
The teams meet again in Calgary on Saturday and Monday. The Flames lead the nine-game season series with Montreal 5-2.
“They’re gonna come up with a better game so we got to up our level too,” Monahan said.
Calgary called off a morning skate saying a player tested positive for COVID-19, but no other players or staff did. Forward Josh Leivo went on the NHL’s COVID protocol list Friday and the game went ahead. Calgary played 11 forwards against the Canadiens.
“It was a strange day and we didn’t know then what was going on, but we were told what to do,” Monahan said. “We were getting ready all day to play a game and it ended up working out."
Leivo did not have symptoms of the virus, Flames head coach Darryl Sutter.
“I spoke with him before the game. He feels fine. He has no symptoms but he obviously (had) a positive test,” the coach said. “Other than that, the team and the league will handle it.”
Monahan scored the tiebreaking goal that put the Flames up 3-2 at 5:58 of the third period. Johnny Gaudreau fed the center from behind the net for Monahan to score top shelf on Allen.
“He’s probably given me a hundred and fifty of those,” Monahan said.
Lindholm sealed the win with an empty-netter with 8 seconds to go. He has five goals and nine points in his last seven games.
Calgary appeared to take the lead late in the second, but Calgary challenged and the goal was reversed as officials agreed that Mikael Backlund jostled Allen to knock the puck loose and tap it in.
Calgary outshot Montreal 13-7 in the opening period which ended with the score tied 2-2.
From behind the goal-line, Mangiapane fed Dube on Allen’s doorstep for the Flames forward to chip the puck over the goaltender’s stick shaft at 6:06 to give Calgary a 1-0 lead.
Toffoli tied it with 6:41 left in the period with his team-leading 23rd goal of the season. He skated the puck over the blue line and put a wrist shot between Markstrom's glove and pad.
Montreal took a 2-1 lead with 1:36 remaining on Armia’s goal. Phillip Danault won the draw and sent the puck back to the winger, who threaded a shot through traffic and beat Markstrom short side.
Defenseman Erik Gustaffson made his Canadiens debut following his trade from Philadelphia. Montreal forward Jonathan Drouin was scratched.
Calgary is 9-11-0 since Darryl Sutter took over as Flames coach, while Montreal is 12-11-4 since Dominique Ducharme replaced Claude Julien.