Tuomo Ruutu and Jaroslav Spacek also netted goals for the Hurricanes, who had lost nine of their last 10 games coming in.
Cam Ward stopped 33 shots for the win.
Kevin Bieksa, Mason Raymond and Alexandre Burrows tallied for the Canucks, who have lost two straight after a four-game winning streak.
Cory Schneider made 37 saves, and Henrik Sedin recorded two assists in defeat.
Down 2-0 late in the second period, Carolina scored three goals in a span of 4:45 between the second and third periods to take a 3-2 lead.
From the right boards Anthony Stewart flipped a pass in front. Bowman, who positioned himself in the crease, finished with a one-timer with 4:08 left in the second.
The Hurricanes tied the score 3:16 later. Bryan Allen blasted a slap-shot from the left point and Ruutu re-directed the disc past Schneider.
Bowman gave Carolina its first lead 37 seconds into the third period, as his well-placed wrister from the right circle beat Schneider in the upper- right corner.
The Hurricanes then took a 4-2 advantage at the 6:12 mark of the third on the power-play. Left of the net, Ruutu fed Spacek, who one-timed a slap shot from the high slot and into the back of the net.
But the Canucks cut the deficit back to a goal 2:28 later. Henrik Sedin put a slap shot on net from the right point, and Burrows buried the rebound with a backhand.
Ward was outstanding down the stretch to preserve the win, including an unbelievable glove save on Keith Ballard, who appeared to have a wide-open net.
"I put a lot of pressure on myself to be great because that's what I expect from myself," Ward said. "I know I have to be on top of my game to give this team a chance, and fortunately I was seeing the puck really well tonight."
The Canucks lit the lamp first at the 5:19 mark of the first period. While fighting for the puck in the right boards, Chris Higgins finally controlled the disk and flipped a pass to Bieksa, who one-timed a slap shot from the left point past Ward.
From behind the net, Henrik Sedin slipped a pass between a couple of Hurricane defenders to Raymond, who squeaked a one-timer from the slot past Ward's pads to make it 2-0 midway through the second period.
Carolina improved to 2-6-1 since Kirk Muller took over as head coach for the fired Paul Maurice...Henrik Sedin became the ninth Swedish-born player to record his 700th career point...Bowman's last two-goal game came against Tampa Bay on April 6, 2010.