Fabio Silva gave his side an early lead and despite some fragile moments in defence Wolves stood firm to keep their lead until half-time.
But during that first half both Yerson Mosquera and his replacement Hugo Bueno withdrew with injury.
In the second half Ruben Neves added a second before Coventry quickly fought back through a Martyn Waghorn penalty.
Wolves then hung on for victory as the second half fizzled out.
Bruno Lage made eight changes to the side that started against Stoke just the day before, as he stuck with the 3-4-3 formation.
Mosquera, Neves and Adama Traore were the only players to keep their place after all starting and coming off at half-time at Stoke.
The rest of the team was largely made up of first team stars that did not start the previous game, with Christian Marques the only youngster starting the game.
Some more academy players were named among the substitutes, however, alongside the rest of the players that started against Stoke.
Former Wolves forward Bright Enobakhare made the Coventry bench.
The hosts, buoyed by a good home atmosphere on their first game back in their stadium since 2019, started the game well and attacked the inexperienced Wolves back three.
Several set pieces came and went for the Sky Blues, all of which were dealt with, before Wolves took the lead in the seventh minute. A corner found Traore at the back post and after his shot was blocked the ball fell to Neves. He delivered a lovely, sweeping cross across goal and found Silva all alone to tap home from inside the box.
Moments later Wolves’ defensive frailties reared their head as Waghorn latched onto a through ball and should have scored, but lifted his effort wide.
The big battle of the first half was between Mosquera and Viktor Gyokeres, with the Wolves defender moving to the right of the back three early on in the half after starting centrally. The Coventry forward got behind him a couple times and got away one tame shot, while Mosquera mopped up other advances.
Again Gyokeres was causing the Wolves defence problems and he should have scored after 30 minutes. Callum O’Hare was played behind Mosquera and worked the ball inside to the forward who, inside the box and centrally, fired over.
Mosquera was then forced off with an injury after seemingly tweaking a muscle. He was replaced by Bueno, who went to left-wing-back, meaning Rayan Ait-Nouri moved to the right and Ki-Jana Hoever moved to the back three.
Traore’s bulldozing run then set up Morgan Gibbs-White who, one on one with Simon Moore, shot high and wide.
Wolves’ injury issues then got even worse when substitute Bueno was forced off and replaced by Chem Campbell - meaning Ait-Nouri again moved back to the left.
Despite the injury concerns and defensive struggles, Wolves entered the break winning 1-0.
The first chance of the second half fell to Campbell who did well cutting in off the right flank. His eventual shot was held by Moore.
After 10 minutes Wolves found a second through Neves. He was found on the edge of the box by Gibbs-White and his sweeping effort from 20 yards took a deflection before finding the back of the net.
Within minutes, however, Coventry found a way back into the game. Hoever bundled over Waghorn in the box and the striker stepped up to get his team back into the game from the penalty spot, sending John Ruddy the wrong way.
The hosts, with the crowd behind them, were then on top and should have equalised through substitute Tyler Walker who scuffed an effort behind at the back post, despite being unmarked.
The game began to fizzle out as the half progressed, with Wolves looking after the ball well and both teams making several substitutions.
In the end Wolves won 2-1, despite some defensive struggles throughout.
Coventry: Moore (Wilson, 86), McFadzean (Reid, 86), Waghorn (Howley, 77), O’Hare (Allen, 73), Trialist A (Rose, 45), Sheaf (Shipley, 73), Hyam (Drysdale, 61), Gyokeres (Walker, 61), Maatsen, Dabo (Dacosta, 61), Hamer (Jones, 73)
Subs not used: Enobakhare, Trialist B.
Wolves: Ruddy, Hoever, Mosquera (Bueno 33, Campbell, 44), Marques, Kilman (Coady, 77), Ait-Nouri, Dendoncker (Moutinho, 86), Neves (Estrada, 90), Gibbs-White (Cundle, 77), Traore (Cutrone, 61), Silva (Semedo, 86)
Subs not used: Sa, Marcal, Saiss, Trincao, Jimenez.