Manchester City survived a nervy 16 minutes playing with 10 men to beat Wolves and maintain their five-point lead at the top of the table.
Edin Dzeko put City ahead after an error from Wayne Hennessey, who was then unable to hold David Silva's shot, with Aleksandar Kolarov slotting home.
Vincent Kompany was sent off after conceding a penalty that was converted by Stephen Hunt to give Wolves hope.
But Adam Johnson's curling shot in stoppage time clinched the points.
The win keeps City clear of second-placed Manchester United, who earlier on Saturday had beaten Everton 1-0 at Goodison Park.
If City never quite reached the heights of their 6-1 demolition of United, then Roberto Mancini's side should still have had this game safe long before Johnson restored their two-goal advantage.
Given City had scored 11 goals in their previous two games - including five against Wolves in their midweek Carling Cup meeting - the visitors could have been forgiven for approaching Saturday's game with trepidation.
In fact, there was no suggestion of that, although Wolves deployed men behind the ball to stifle the league leaders in a first-half that proved very frustrating for City. Man City 3-1 Wolves
- Wolves have conceded at least two goals in each of their last seven Premier League games
- Vincent Kompany is the first Manchester City player to be sent off since Pablo Zabaleta at Arsenal in January
That Wolves reached half-time on level terms had much to do with the ultimately luckless Hennessey, who was in action in the opening minute to tip away Samir Nasri's shot following a City corner.
That was one of three superb saves Hennessey made in the opening 45 minutes, the best of which was from Dzeko, who had been released by a slick interchange involving Silva and Sergio Aguero.
At times Hennessey rode his luck - notably when he was unable to hold a Dzeko cross - while the Wolves keeper was also helped by some off-key City finishing, notably when Aguero put the ball wide after he had been set up by Micah Richards.
However all Hennessey's good work went to waste on 52 minutes when he dawdled on the ball.
Aguero was quick to block Hennessey's attempted clearance and the ball bounced kindly to Dzeko, who had the simplest of tasks to put City ahead.
Midway through the second half Wolves found themselves 2-0 behind after Hennessey was unable to hold a Silva shot and the ball fell to the Serb Kolarov who volleyed home.
That should have been that, but Hart caught a dose of the Hennessey wobbles and spilled Adlene Guedioura's long-range shot.
Kevin Doyle reacted more quickly than Kompany and the Belgian defender hauled down the Wolves striker to concede a penalty and earn himself a red card.
Hunt sent Hart the wrong way with his spot-kick, but Wolves were never really to threaten the City keeper again despite their numerical superiority.
And in the first minute of stoppage time, Johnson's beautifully judged curling shot ensured City's deserved victory.
Manchester City manager Roberto Mancini: "It is impossible to always score four or five goals.
"I don't know how many chances we had in the first half, but their goalkeeper saved everything. But in the second half I think we played very well.
"After the Manchester United win I don't want us to think that every game will be easy. This does not exist in football, in every game you must give 100% because in any moment the game can change. After the sending-off it was very difficult."
Wolves manager Mick McCarthy: "We played well. We had to defend in the first-half and Wayne Hennessey made a couple of magnificent saves.
"You can imagine how he feels. He is as good as any goalkeeper in this league and it is such a shame it has cost us.
"I'm disappointed we haven't got anything and we let them off the hook. It was set up for us to get something."
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +3:32
Karl Henry gives away a free kick for an unfair challenge on Gnegneri Toure Yaya. Direct free kick taken by David Silva.90:00 +2:09
Corner taken short by Jamie O'Hara. Jamie O'Hara produces a right-footed shot from just outside the box that misses to the right of the target.90:00 +0:18
Gnegneri Toure Yaya provided the assist for the goal.90:00 +0:18 Goal scored
Goal! - Adam Johnson - Man City 3 - 1 Wolves Adam Johnson scores a goal from long range to the bottom left corner of the goal. Man City 3-1 Wolverhampton.86:54
Effort on goal by Mario Balotelli from outside the penalty box goes harmlessly over the bar.85:58
Free kick awarded for an unfair challenge on Sylvan Ebanks-Blake by Adam Johnson. Jamie O'Hara crosses the ball in from the free kick.84:18 Substitution
Substitution (Wolverhampton) makes a substitution, with Matthew Jarvis coming on for Stephen Hunt.84:18 Substitution
Substitution Sylvan Ebanks-Blake on for Adlene Guedioura.80:28
Unfair challenge on Gareth Barry by Adam Hammill results in a free kick. Joe Hart takes the direct free kick. Richard Stearman gives away a free kick for an unfair challenge on Mario Balotelli. Aleksandar Kolarov takes the direct free kick.79:21
Foul by Mario Balotelli on Roger Johnson, free kick awarded. Direct free kick taken by Richard Stearman.77:56
Mario Balotelli challenges Roger Johnson unfairly and gives away a free kick. Free kick taken by Roger Johnson.77:23
Effort on goal by Stephen Hunt from long range goes harmlessly over the target.76:50
Adam Hammill crosses the ball, save by Joe Hart.75:49 Substitution
Substitution Stefan Savic comes on in place of Sergio Aguero.74:24
Kevin Doyle provided the assist for the goal.74:24 Goal scored
Goal! - Stephen Hunt - Man City 2 - 1 Wolves Power penalty scored by Stephen Hunt. Man City 2-1 Wolverhampton.73:29 Dismissal
Dismissal Vincent Kompany is shown a red card for professional foul.72:55
Adlene Guedioura takes a shot. Save by Joe Hart. Unfair challenge on Kevin Doyle by Vincent Kompany results in a Penalty.72:08
Gnegneri Toure Yaya concedes a free kick for a foul on Stephen Hunt. Adlene Guedioura takes the direct free kick.
Mario Balotelli produces a right-footed shot from just outside the penalty area that goes harmlessly over the target.69:45 Substitution
Substitution Mario Balotelli comes on in place of Samir Nasri.66:01 Substitution
Substitution (Wolverhampton) makes a substitution, with Adam Hammill coming on for David Edwards.66:01
Assist on the goal came from David Silva.66:01 Goal scored
Goal! - Aleksandar Kolarov - Man City 2 - 0 Wolves Aleksandar Kolarov gets on the score sheet with a goal from inside the six-yard box to the bottom left corner of the goal. Man City 2-0 Wolverhampton.65:57
David Silva takes a shot. Save by Wayne Hennessey.64:42
Effort on goal by Sergio Aguero from deep inside the penalty area misses to the right of the goal.62:06 Substitution
Substitution Adam Johnson replaces Edin Dzeko.61:49
Centre by Stephen Hunt.61:10
Karl Henry restarts play with the free kick.61:10 Booking
Booking Edin Dzeko is shown a yellow card.61:05
Foul by Edin Dzeko on Roger Johnson, free kick awarded.59:24
The ball is delivered by Stephen Hunt, clearance made by Joleon Lescott.58:11
Shot from just outside the area by Adlene Guedioura goes over the bar.57:39
Gnegneri Toure Yaya crosses the ball, save made by Wayne Hennessey.57:27
Aleksandar Kolarov takes a shot. Richard Stearman gets a block in.55:14
Stephen Hunt takes a shot. Joleon Lescott gets a block in. Short corner taken by Jamie O'Hara.54:39
Vincent Kompany gives away a free kick for an unfair challenge on Karl Henry. Jamie O'Hara takes the free kick.52:55
Jamie O'Hara has an effort at goal from just outside the box which goes wide of the right-hand upright.51:19
Assist on the goal came from Sergio Aguero.51:19 Goal scored
Goal! - Edin Dzeko - Man City 1 - 0 Wolves Goal scored by Edin Dzeko from just outside the penalty box low into the middle of the goal. Man City 1-0 Wolverhampton.50:03
Samir Nasri restarts play with the free kick.50:03 Booking
Booking Kevin Doyle goes into the referee's book.49:59
Foul by Kevin Doyle on Joleon Lescott, free kick awarded.47:09
The ball is swung over by Samir Nasri.46:47
David Silva has an effort at goal from close range which goes wide left of the goal.45:01
The referee blows his whistle to start the second half.45:00 +2:15 Half time
Half Time The referee calls an end to the first half.45:00 +0:35
The official flags Kevin Doyle offside. Free kick taken by Joe Hart.44:23
Unfair challenge on Karl Henry by Edin Dzeko results in a free kick. Free kick taken by Karl Henry.43:45
Edin Dzeko concedes a free kick for a foul on Roger Johnson. Direct free kick taken by Wayne Hennessey.40:12
Edin Dzeko takes a shot. Wayne Hennessey makes a comfortable save. Outswinging corner taken left-footed by Aleksandar Kolarov from the left by-line.39:31
Unfair challenge on Stephen Ward by Samir Nasri results in a free kick. Jamie O'Hara takes the direct free kick. The ball is swung over by Jamie O'Hara, Aleksandar Kolarov manages to make a clearance.37:48
The ball is delivered by Micah Richards.35:32
David Silva has a volleyed shot. Richard Stearman gets a block in.34:40
Free kick awarded for an unfair challenge on Karl Henry by Edin Dzeko. Karl Henry takes the direct free kick.34:05
Micah Richards concedes a free kick for a foul on Stephen Hunt. Wayne Hennessey restarts play with the free kick.33:10
Corner taken short by Jamie O'Hara.32:32
Shot from deep inside the area by Gnegneri Toure Yaya clears the bar.31:10
Shot by Jamie O'Hara from outside the box goes over the target.30:34
Shot from just outside the box by Samir Nasri goes over the bar.29:12
Foul by Aleksandar Kolarov on Karl Henry, free kick awarded. Direct free kick taken by Richard Stearman.27:49
Foul by Vincent Kompany on Kevin Doyle, free kick awarded. Stephen Ward takes the direct free kick.24:46
Effort from deep inside the area by Sergio Aguero misses to the right of the target.23:30
David Edwards is adjudged to have handled the ball. Aleksandar Kolarov crosses the ball from the free kick left-footed from right wing, Kevin Doyle makes a clearance.22:15
Sergio Aguero takes a shot. Save by Wayne Hennessey. Corner taken left-footed by Aleksandar Kolarov, clearance made by Roger Johnson.21:05
Sergio Aguero is flagged offside by the assistant referee. Free kick taken by Wayne Hennessey.19:43
Wayne Hennessey takes the free kick.19:43 Booking
Booking Gareth Barry shown a yellow card.19:38
Free kick awarded for a foul by Gareth Barry on Jamie O'Hara.18:49
Outswinging corner taken from the left by-line by Jamie O'Hara.17:47
Adlene Guedioura has an effort at goal from outside the box which misses left.17:29
Micah Richards is adjudged to have handled the ball. Jamie O'Hara restarts play with the free kick.15:09
Micah Richards produces a cross, blocked by Roger Johnson. Edin Dzeko produces a right-footed shot from close in that clears the bar.13:14
Samir Nasri crosses the ball, Christophe Berra makes a clearance. The ball is delivered by Aleksandar Kolarov, Roger Johnson manages to make a clearance.12:12
Unfair challenge on Micah Richards by Stephen Hunt results in a free kick. Free kick taken by Samir Nasri.11:48
Sergio Aguero challenges Adlene Guedioura unfairly and gives away a free kick. Adlene Guedioura takes the free kick.11:04
David Edwards produces a cross.9:52
Sergio Aguero produces a right-footed shot from just outside the area that goes harmlessly over the target.6:09
Effort from inside the area by Kevin Doyle misses to the right of the target.5:13
Outswinging corner taken by Aleksandar Kolarov from the left by-line, David Edwards manages to make a clearance.2:50
Foul by Edin Dzeko on Christophe Berra, free kick awarded. Direct free kick taken by Wayne Hennessey.0:46
Outswinging corner taken left-footed by Aleksandar Kolarov, Samir Nasri takes a shot. Save by Wayne Hennessey. Outswinging corner taken from the right by-line by Samir Nasri.0:00
The game gets underway.
Live data and text provided by our data suppliers