City went ahead early in the second half when Edin Dzeko converted the loose ball after Sergio Aguero had pounced on some hesitant play by the previously impressive Wayne Hennessey, and the Wanderers goalkeeper then palmed David Silva’s shot into the path of Aleksandar Kolarov, who made it 2-0 in the 67th minute.
Stephen Hunt pulled back a goal from the penalty spot with 15 minutes remaining following Kompany’s dismissal for bringing down Kevin Doyle, but substitute Adam Johnson wrapped up the victory for the hosts in stoppage time.
It means it is a case of as you were at the Premier League summit after second-placed Manchester United had cut the gap earlier in the day with their 1-0 win at Everton.
Struggling Wolves, meanwhile, are now winless in eight league fixtures.
City boss Roberto Mancini recalled most of the players who had started last weekend’s 6-1 derby win at United, although Mario Balotelli was only named as a substitute.
It amounted to eight changes from the 5-2 Carling Cup victory over Wolves on Wednesday, with Kolarov, Samir Nasri and Dzeko the survivors from that game and the likes of Joe Hart, Yaya Toure, Silva and Aguero returning to the team.
Wanderers manager Mick McCarthy made six alterations from the cup tie, Doyle one of those keeping his place and midfielder Jamie O’Hara among the men coming back in.
Given what had happened when the sides met in midweek, many were expecting a comfortable afternoon for free-scoring City, but they endured a frustrating first half as they failed to make the most of the chances that came their way thanks both to Hennessey’s efforts and their own poor finishing.
Wolves were only able to partially clear a corner from Kolarov in the second minute and the ball came to Nasri, who unleashed a volley which Hennessey tipped over the bar.
At the other end, Hunt picked up possession following a mistake by Micah Richards and teed up Doyle, but the Republic of Ireland frontman could only flash his effort across the face of goal.
Aguero, having played a one-two with Silva, scuffed a shot high into the stands and Dzeko put the ball over after Wanderers skipper Roger Johnson had intercepted Richards’ cross into the danger zone.
City continued to break forward and Aguero was just unable to meet a cross from the left after it took a deflection.
The Argentina forward then drew a good save out of Hennessey with a turn and strike from outside the box.
Moments later Aguero looked set to put City in front, but miskicked as he attempted to stroke home Richards’ delivery and the shot went off-target.
Nasri showed little accuracy when trying his luck from distance and the same applied to an effort from O’Hara.
Silva saw his strike blocked after Nasri’s cross came to him and City fans felt Richard Stearman had fouled Dzeko in the area as the ball came over, but referee Stuart Attwell waved for play to continue.
Four minutes before the break Silva put Dzeko through on goal, but the Bosnian’s shot was turned around the post by Hennessey.
City kept the pressure up after the restart, with Nasri sending in a cross that bounced out off Silva, and with seven minutes of the second half gone, the hosts made the breakthrough as Hennessey – so dependable before the break – made a hash of dealing with a backpass.
Aguero came into to challenge the goalkeeper and the ball spun out to Dzeko, who lofted it into the net for his fifth goal in three games.
Wolves looked to respond but there was no-one to get on the end of Hunt’s cross, and after Adam Johnson had come on to replace Dzeko, Aguero sliced wide following good link-up play with Silva.
Two minutes later City had their second, Hennessey parrying Silva’s shot from the edge of the box and Kolarov tucking away an easy finish.
Mancini brought on Balotelli for Nasri and the Italian youngster sidefooted over the bar.
City appeared to be cruising, but they were then reduced to 10 men when Hart spilled a shot from Adlene Guedioura and Kompany was adjudged to have impeded Doyle as the forward attempted to get to the rebound.
Kompany was shown a straight red card and Hunt dispatched the resulting spot-kick to set up a nervy finale, but City made sure at the death as Adam Johnson collected Toure’s pass and fired in.