Lucas Wallmark and Andrei Svechnikov also scored for Carolina.
Dougie Hamilton had three assists for the Hurricanes.
Petr Mrazek stopped 30 shots to pick up the win for Carolina, who moved to 21-11-2.
Jack Roslovic, Patrik Laine and Mark Scheifele scored for Winnipeg.
Jets captain Blake Wheeler had a pair of assists.
Connor Hellebuyck and Laurent Brossoit combined to make 22 saves for Winnipeg, who dropped to 21-12-2.
Carolina struck first on the power play late in the first period.
With Josh Morrissey off for delay-of-game, Lucas Wallmark scored at 18:23 when he snapped a Nino Niederreiter feed past Winnipeg goaltender Connor Hellebuyck to make it 1-0 Hurricanes.
The goal was his 5th of the season.
The Jets replied 29 seconds later when Jack Roslovic reached behind his back and around Carolina defenceman Dougie Hamilton, deflecting a Nikolaj Ehlers shot past goaltender Petr Mrazek, beating him high blocker side to make it 1-1.
The goal was his 7th of the season.
Sebastian Aho gave Carolina the lead 8:39 into the second when Teuvo Teravainen and Aho perfectly executed the back door pass play.
Aho snuck in behind Jet defenceman Neal Pionk, got his stick down while Teravainen pivoted and hit him with a hard pass from the corner which the Finnish forward hammered past Hellebuyck to score his 19th goal of the season.
Patrik Laine tied the game at 12:18, tipping a Nathan Beaulieu shot past Mrazek to make it 2-2.
The goal was his 11th of the season.
Andrei Svechnikov gave the Hurricanes the lead at 13:10 with an outstanding individual effort from behind the Jet goal.
The Carolina winger scooped the puck up off the ice and shovelled the disc over Connor Hellebuyck's shoulder lacrosse style while pivoting around the goal.
The Hurricanes took a two-goal lead at 16:46 when Sebastian Aho scored his second of the contest, taking a Nino Niederrieter feed in flight before he moved in and beat Hellebuyck glove side with a backhand to score his 20th of the season.
Carolina struck again with the man advantage late in the period when Jordan Staal scored at 18:43, potting his own rebound to make it 5-2 Hurricanes.
The goal was his 4th of the season.
Laurent Brossoit replaced Connor Hellebuyck to start the third period.
Staal scored again 3:16 into the period to make it 6-2 Carolina.
Mark Scheifele pulled the Jets to within three on the power play at 12:02 when he one timed a Blake Wheeler feed past Mrazek to make it 6-3.
The goal was his team leading 16th of the season.
Both teams next see action on Thursday as Winnipeg wraps up their three-game homestand against Chicago while Carolina visits Colorado.
SHOTS-CAROLINA 28 WINNIPEG 33