Andrei Svechnikov had a goal and an assist, and Petr Mrazek made 17 saves for Carolina.
"We gave away the first 40 minutes of the game," Hurricanes coach Rob Brind'Amour said. "I thought yesterday hurt us, just sitting around in the hotel. I think that's a big reason we started the game slow, and I've got to do a better job of figuring that out."
The Hurricanes nearly took the lead at 6:47 of the first period, but Red Wings defenseman Filip Hronek slid across the goal line to block Svechnikov's shot with Bernier out of position.
Ryan made it 1-0 at 3:44 of the second period, scoring on a one-timer from the left circle after Zadina intercepted a drop pass by Hurricanes defenseman Jake Gardiner.
"When I'm out there with Bobby, I'm trying to get him the puck," Zadina said. "He's been in this league for a long time and he scores goals. It's a blast being able to play with someone like him."
Vincent Trocheck scored 28 seconds into the third period to tie it 1-1 when he deflected Svechnikov's initial shot on the power play, but Larkin put the Red Wings ahead 2-1 18 seconds later when his backhand pass to the front of the net deflected in off Trocheck's stick and the stick of Carolina defenseman Brady Skjei.
"The puck has been bouncing like crazy during these first two games, so I was just trying to throw it in front of the net and try to hit [Anthony Mantha], but it went in off their guys," Larkin said.