Joe Veleno scored his first NHL goal, Valtteri Filppula had three assists, and Thomas Greiss made 22 saves for Detroit, which scored three goals in a span 3:02 of the second period.
"We stayed with it. That's the biggest thing I thought," Red Wings coach Jeff Blashill said. "I don't think we were good enough in the first period. Our [defensive]-zone coverage wasn't very good. We got better as the game went along.
"This is a group that's fought and competed on a daily basis, and it showed tonight. I like this group. There's a lot of character in this room."
Gavin Bayreuther scored his first NHL goal since 2018, and Matiss Kivlenieks made 31 saves in his first start of the season for Columbus, which had a five-game point streak end (2-0-3).
"It's a situational game and you pick your spots," Blue Jackets forward Nathan Gerbe said. "I think the second period was lost battles and puck possession."
Veleno, in his fifth NHL game, brought the Red Wings within 2-1 at 13:50 of the second period with a power-play goal off a pass from Vrana.
"It obviously feels really good to have that first one go in and have it in a victory for our team, so it's a lot of happy faces around the locker room," Veleno said. "It feels good, but I just wanted to stay with it and be patient."
Danny DeKeyser tied it 2-2 at 14:48. The puck caromed off the end boards to him in the left circle and he one-timed a shot while Kivlenieks scrambled to cover the net.
Vrana put Detroit ahead 3-2 at 16:52, scoring from the low right circle off a pass by Richard Panik. Vrana and Panik were acquired in a trade with the Washington Capitals for Anthony Mantha on April 12.
"He's a real talented player. That's a fact," Blashill said of Vrana. "He can be a real key addition. What I like best about him is he is really receptive to coaching. He wants to get better in those areas he needs to get better."