Staal scored his first of the night at 3:50 of the second period to tie it 1-1. After Teravainen found Noah Hanifin between the circles, the defenseman faked a shot to freeze Bobrovsky and passed low to Staal, who had an open net for the tap-in.
Staal used a curling term to describe watching the puck slowly move into the net with several Columbus players trying to stop it.
"I was yelling 'sweep' to get it across the goal line," he said.
Ward made a left-toe save on a breakaway by Cam Atkinson less than three minutes before Carolina took the lead on Staal's second goal.
"We were resilient," Peters said. "We didn't give up much, and when we did, we gave up a couple of humdingers. [Ward] was big. He was outstanding."
The Hurricanes made it tough for the Blue Jackets to find space, forcing them into 13 giveaways compared to their four.
"When they're playing well, they kind of remind me of who we are," Dubinsky said. "Their D pinching, staying up, surfing as the coaches call it, creating turnovers and transitioning well. All night, they were in our face, and we didn't manage the puck well."