Calgary broke a 1-1 tie midway through the second period when Monahan set-up goals 38 seconds apart by all-stars Mark Giordano and Johnny Gaudreau.
Dougie Hamilton also scored for Calgary (22-24-3). The Flames snap a three-game losing streak and climb to within six points of the third place Anaheim Ducks in the Pacific Division.
Elias Lindholm had the lone goal for Carolina (23-21-8), which was kicked off a three-game road trip. The Hurricanes entered the night on a 7-2-1 roll
Giordano's winner at 11:32 on a snapshot over Eddie Lack's shoulder came after he was set up in open ice by a slick cross-ice feed from Monahan.
Monahan capped off his first career four-point night steering in a centring pass from Gaudreau at 2:47 of the third.
The Flames top line centre entered the night with just three points in the previous 14 games.
The same two teams had just met in Raleigh, N.C., 10 days ago with the Hurricanes winning 5-2.
On this night, Calgary was the better team in one of its most complete efforts of the last few weeks.
The Flames' 30th ranked power play played a big role going 2 for 4. Calgary entered the night in an 0-for-15 skid on the man advantage but on its first attempt of the night needed just 34 seconds to score with Hamilton earning his seventh goal.
But the lead lasted just 18 seconds as Lindholm cut in, froze defenceman Kris Russell with a fake shot, and zipped a wrist shot inside the goal post on Karri Ramo.
Ramo had 28 saves to improve to 17-17-1 while Lack had 20 stops to fall to 9-10-3.
One concern for the Flames was the exit of defenceman TJ Brodie early in the second period after a Justin Faulk slapshot hit him in the vicinity of his knee. He slowly hobbled off the ice and while he did try to play a shift shortly after, he wasn't out for long and left the game right after that with what's been called a lower body injury.
Notes: Giordano collected his 200th NHL assist... Flames D Dennis Wideman served the first of a 20-game suspension for his incident with linesman Don Henderson. The NHLPA is appealing the suspension... Calgary's healthy scratches included C Markus Granlund and D Jakub Nakladal, who was recalled earlier in the day from Stockton to replace Wideman on the roster.