Jonathan Huberdeau and Andrew Mangiapane each had a goal and an assist, and Oliver Kylington and Blake Coleman scored for the Flames (26-25-5), who had lost three straight. Jacob Markstrom made 28 saves.
"I think it shows a lot," Kylington said. "We've had tough stretches of games in the past here, and we've been down and haven't showed any character, and I think today we really did. I know this group can show character, and we just have to understand we have to do that for each other to win games, really, and be consistent about it."
Monahan got his second career hat trick, and Gabriel Vilardi and Kyle Connor each had two assists for the Jets (33-15-5), who had won three in a row.
"That's as soft a 5-on-5 game as we've played all year," Winnipeg coach Rick Bowness said. "That's not us at all. That didn't even look like the Winnipeg Jets out there. But you know what? You flush it, and we're going to get ready for tomorrow (against the Minnesota Wild)."
Connor Hellebuyck, who made 28 saves, allowed more than three goals for the first time since Nov. 2 (32 games).
"I think he should be right there in the Hart Trophy conversation," Jets defenseman Josh Morrissey said. "To me, it's disappointing because those weren't goals that I felt like he could stop. We gave them opportunities to score goals that were defensive breakdowns, and that's on us, that's not on him."
Coleman cut Winnipeg's lead to 3-2 at 14:09 of the first period when he tapped in a cross-crease pass from Mangiapane.
Kadri tied it 3-3 at 4:58 of the second period, deflecting MacKenzie Weegar's point shot on the power play, and Huberdeau put the Flames ahead 4-3 at 16:06 when he shot past a sprawled Hellebuyck after taking a pass from Rasmus Andersson on a rush.
"Obviously, a bit of an adverse start to the game, but we fought back, had a big goal at the end of the first period, and we never looked back," Kadri said. "We were, I thought, the better team against a great hockey team."