Seth Jarvis and Martin Necas scored, and Antti Raanta made 18 saves for the Hurricanes (11-6-5), who were 0-1-4 in their previous five, including a 3-2 overtime loss at the Boston Bruins on Friday.
"I told the guys, 'We're playing well,'" Carolina coach Rod Brind'Amour said. "I was actually worried because at some point you think you're going to have a game that's not so good. We've played well all through this stretch and just haven't got any bounces."
Adam Ruzicka scored, Tyler Toffoli got his 200th NHL goal, and Dan Vladar made 30 saves for the Flames (9-9-3), who have lost three straight, including 3-0 at the Washington Capitals on Friday.
"I think we were ready for a really fast, aggressive team, and they came out like that," Calgary coach Darryl Sutter said. "The goalie did a good job holding down the fort early, but in the end, their power play gets a break and scores a goal. We had an opportunity before that on our power play [but] didn't come through."
Jarvis gave Carolina a 1-0 lead at 6:20 of the first period with his first goal in 12 games. Brent Burns took advantage of a Calgary turnover and fed him with a backhand across the slot.