Johansson, who could become an unrestricted free agent July 1, scored his first game-winner as a member of the Devils in two seasons at 15:56 of the third period when he converted a pass from Jesper Bratt to make it 3-1.
"I think it was impressive to see how fast [Bratt] was there, but once he beat his guy I kind of knew the puck was coming so I just tried to get in position," Johansson said. "I think that goal was all [Bratt]; that's what he can do. He's so fast and he sees the game so well. That was a heck of a play."
Teravainen scored a power-play goal with 1:27 remaining in the third to make it 3-2.
Johansson scored his first of the game when he swept in a rebound from the slot at 19:03 of the first period to give the Devils a 2-0 lead.
"No excuse; we had the power plays," Hurricanes coach Rod Brind'Amour said. "We came out pretty good 5-on-5 and then they sucked the life out of us and they scored on the power play, and then we were behind 2-0 (in the first period) chasing the game.
"We weren't very good in the first period as a group, but really it was the power play for me."
Hamilton scored off a snap shot through a screen on a delayed penalty call 7:22 into the second period to pull the Hurricanes within 2-1. Hurricanes forward Nino Niederreiter interfered with Kinkaid to negate a goal by Sebastian Aho that would have tied the game 7:06 into the third.
Zacha scored his 10th goal off a one-timer from the right face-off circle on the power play at 11:35 of the first period to give the Devils a 1-0 lead.
"That was a great play and I went right to [Ryan Murphy] and told him it was a great play," Hischier said. "It's not easy to make that backhand pass through the middle, especially when there's sticks in the way, so it was a great play and a great finish."