The Flames picked up where they left off on Wednesday night, putting pressure on the Habs from the opening faceoff and building a 5-1 lead in shots early in the opening frame.
They had chances on their first three shifts, including point blasts from Chris Tanev and Mark Giordano, and a wrister from down low by Johnny Gaudreau.
Joakim Nordstrom and Mikael Backlund also had a 2-on-1, Nordstrom feeding to his linemate, but Allen able to deflect the return pass wide which would have been a tap in for Nordstrom.
The Flames went to the powerplay at 13:41 after Joel Edmundson was sent off for a dangerous boarding call on Dillon Dube.
The visitors pushed hard, Tkachuk tipping a point shot that Allen kicked out with his left pad, then deflecting a point shot from Giordano that just dribbled wide of the far post.
The captain later made a fantastic defensive play after he was held up in the neutral zone, but hit the jets for a hard skate to make it back on a streaking Jesperi Kotkaniemi and knocked the puck off his stick before he could shoot.
As the period wound down, the Flames really poured it on, Sean Monahan intercepting a clearing attempt by Shea Weber as the Habs were caught out on a long shift and feeding Gaudreau as he circled into the slot and wired one that Allen turned aside.
Tkachuk was sent off at 19:45 for hooking and Markstrom made a stellar stop on Josh Anderson as time expired, flailing out spread eagle as he came back across his crease without his stick, that had got caught up in the feet of Corey Perry in the blue paint.
The Flames led 14-6 in shots after 20, and held an 8-6 edge in scoring chances and a 5-2 advantage in high-danger scoring opportunities.
Calgary killed off 1:45 of PP time to start the second but was soon back on the PK when Juuso Valimaki was tagged for holding Anderson at 2:27. The Flames killed that off as well.
The Flames got a golden chance to open the scoring when Rasmus Andersson stepped into a one-timer from the point and the rebound went to Lindholm who couldn't scoop it into the open net amid a maze of bodies.
The Habs opened the scoring at 9:32 when Tyler Toffoli snuck into the slot all alone and took a pass from Nick Suzuki behind the net and snapped a shot high glove-side on Markstrom for his team-leading 20th of the season.
It was Calgary's second turn for a PP at 12:49, they didn't score but Andersson rang a slapper off the post then Gaudreau one-timed a shot from Giordano that also hit iron.
Then it was Tkachuk who streaked in off the wing behind the Habs defence, cutting across the net and beating Allen but his backhand shot hit the post and went out wide.
Before the second ended, Tkachuk fed Gaudreau on a rush but Allen was able to make another big stop.
Tkachuk kept a puck alive behind the net and then Gaudreau fed it out to Lindholm who tried to one-time it but missed the puck, then getting a backhand off from his knee that went off Ben Chiarot to tie it up.
The winner came at 15:45 when Toffoli capitalized on a quick pass from Joel Armia right onto his tape off a rush to put one high past Markstrom.