Andrew Mangiapane gave the Flames the lead with 56 seconds left in the first period as Juuso Valimaki hit Magniapane's stick from the high slot as he made a perfect target for the Flames defenceman. He tipped the disc past Hellebuyck easily to make it 1-0 Calgary.
Mason Appleton scored 3:11 into the second as he was falling to the ice.
Adam Lowry spun and fired a backhand at the net after getting to a loose puck which Appleton managed to get his stick on and slid it past a sprawling Markstrom to tie the game at one.
The goal was his second of the season.
Kyle Connor gave Winnipeg the lead just under the fourteen minute mark of the second period when he stripped Flames centre Mikael Backlund of the puck in the Jets end before breaking in alone on Markstrom and beating him glove side to make it 2-1 at 13:59.
The goal was his seventh of the season.
Mark Scheifele's late second period tally gave Winnipeg a two-goal cushion.
Scheifele prevented the puck from exiting the zone at the blue line before Matthieu Perreault got control of the disc in the corner and hit Pionk with a pass which he shot at the net.
The puck hit Scheifele, landing in front of him before he shot it past Markstrom to make it 3-1 at 19:09.
Mason Appleton added an empty netter with 1:22 remaining in regulation to clinch the win for the Jets.
Calgary hosts Edmonton Saturday while Winnipeg gets a four-day break before visiting Calgary Tuesday.
SHOTS-CALGARY 24 WINNIPEG 27