The victory finished off Calgary's six-game road trip with a fourth win away from home (4-3-0), while the Jets have now lost four in a row.
Dennis Wideman, Johnny Gaudreau and Mason Raymond scored in a span of six minutes and 42 seconds in the second period and T.J. Brodie added one in the third.
"Six games, it doesn't matter if you're travelling way east or way west or what have you, but it's not an easy trip," said Raymond, who also had two assists. "I think collectively we're really pleased with the outcome. Four and two, I mean, that's a good start to the season for us.
"I know we're looking forward to getting home and having a (five-game) homestand, but we'll definitely enjoy this win tonight."
Flames netminder Jonas Hiller stopped 34 shots, only letting Mark Scheifele score in the first period for Winnipeg (1-4-0).
Ondrej Pavelec faced 29 shots.
"We're growing, don't give us flowers too soon," Flames head coach Bob Hartley said of his team's early success.
"It's not time for this. There's only seven games played. We still have a long way ago."
The Jets had outshot the Flames 13-6 in the first period.
"I think one of the biggest things tonight was (Hiller) was huge in the first period," Raymond said.
"They came at us, and came at us real hard. We surrendered just one, so we regrouped and had a good second period. I thought we really played with a lot more confidence underneath our feet and banged those three in right away."
Wideman and rookie Gaudreau, who was benched for the last game, also each had an assist.
"I think I played a better game tonight," said Gaudreau, whose power-play goal was his first this season.
"It's nice to always help contribute offensively. I think the whole team as a whole, it was one of our better games on the road."
Gaudreau's power-play goal was the first Winnipeg has given up this season in 19 penalty-kill situations.
Raymond followed up with his fifth goal of the season off a high wrist shot at 12:54 to make it 3-1.
The Flames had 18 shots in the middle period and were outshooting the Jets 24-23 heading into the third.
Brodie made it 4-1 at 3:18 when he put a rebound high past Pavelec.
Mark Stuart said Calgary forced Winnipeg's defence to stretch and they fell off their game plan.
"We just weren't quite as tight," Stuart said.
"It doesn't take much in this league for a game to turn around like that so we'll take a look at it, go back to work tomorrow and work on turning this thing around."
It was the second game of a five-game homestand for Winnipeg, which hosts Carolina on Tuesday.
Scheifele scored his first goal of the season after Mathieu Perreault passed the puck from behind the net to Blake Wheeler at the right side. Wheeler then sent it across to Scheifele for a high shot into the side of the net at 10:28 of the first.
Winnipeg had a goal reviewed and disallowed earlier in the first when defenceman Anthony Peluso rifled a shot that hit the crossbar and then the post.
After opening their season with a 6-2 win over Arizona, the Jets have only scored two goals in their four-game losing skid.
"(The record) is reflective of the kind of hockey we've played," Jets head coach Paul Maurice said. "The record's accurate. The first period is about as a good as we're going to look. And then it's that constant battle with having the confidence to keep doing what you're doing, not change what you're doing.
"Even in that second period, you've got to find that confidence to stay up and stay aggressive in that period, and we're having a hard time with that right now. We're doing this together. That second period is not the way it's supposed to look, so that's on me."
Calgary was 1 for 3 on the power play and Winnipeg 0 for 2.