Many might have expected a tough physical battle between two teams who have been somewhat dogged by negative headlines for a few instances of poor tackling this season.
Instead, the crowd were treated to a fantastic display of attacking football from both sides.
City were the better team in the first quarter of the match and before the opener had twice tested Wolves with two beautiful crosses from the right into the six-yard area - the second cleared by Kevin Foley, denying the sprightly Mario Balotelli.
Wolves did crack under the City pressure midway through the half when Stearman conceded a penalty after coming in with unnecessary force to bring down Silva. Adebayor coolly placed the ball to Hahnemann's left to make it 1-0.
Mancini apologises for Man City performance
But the lead lasted for only for seven minutes.
The fantastic Matt Jarvis, who led most of Wolves' attacking forays, delivered a brilliant ball from the left which was half-cleared to Milijas at the edge of the area. The 27-year-old Serbia international drove his effort past Hart, who got a hand to the ball but could not keep it out of the bottom left corner.
McCarthy's side had tested league leaders Chelsea last week but came away from Stamford Bridge without a point. This week it was clear they were intent on not letting their good work go to waste.
And 10 minutes after the break, they took the lead when Edwards, who went close with two headers in the first half, placed his eight-yard effort past Hart.
City were rocked and boss Roberto Mancini brought on Adam Johnson for the last 20 minutes.
The former Middlesbrough player came close to making an immediate impact when he delivered a low cross to Adebayor who, from 12 yards, should have scored but instead scooped his shot over the bar.
McCarthy refuses to get carried away with win
Strangely for such a potent side, that was City's best chance in the closing stages with Wolves blocking subsequent lofted balls into the area as the away side resorted to desperate measures.
When the whistle blew there was delight and relief among the Wolves players and fans but glum faces among the City contingent whose title aspirations were handed a massive blow.
94:27 The final whistle goes and the game is over.
90:00+3:37 Joao Alves Jo is flagged offside by the assistant referee. Marcus Hahnemann takes the indirect free kick.
Correction - 90:00+0:43 Booking Booking for Mario Balotelli.
90:00+0:43 Booking The referee cautions Marcus Hahnemann for time wasting.
88:17 Adam Johnson takes a shot. Save made by Marcus Hahnemann. Corner taken left-footed by David Silva from the right by-line,
Marcus Hahnemann makes a save.
87:24 Substitution Steven Mouyokolo is brought on as a substitute for Matthew Jarvis.
86:15 Free kick awarded for a foul by Pablo Zabaleta on Kevin Foley. Direct free kick taken by Kevin Foley.
86:15 Booking Pablo Zabaleta shown a yellow card.
82:51 Foul by Jerome Boateng on Kevin Doyle, free kick awarded. Direct free kick taken by Christophe Berra.
82:51 Substitution Joao Alves Jo comes on in place of Micah Richards.
82:51 Substitution Michael Mancienne joins the action as a substitute, replacing Nenad Milijas.
80:54 Gnegneri Toure Yaya takes a shot. David Edwards gets a block in.
80:15 Inswinging corner taken from the left by-line by James Milner.
77:51 Shot from just outside the box by David Silva goes over the bar.
76:55 Kevin Doyle produces a left-footed shot from just outside the area that goes harmlessly over the bar.
76:55 Substitution Pablo Zabaleta replaces Emmanuel Adebayor.
72:18 Effort on goal by Emmanuel Adebayor from just inside the penalty area goes over the target.
70:41 Shot from just outside the box by Jerome Boateng goes over the crossbar.
70:26 Inswinging corner taken by Adam Johnson from the right by-line played to the near post, clearance made by Kevin Doyle.
69:59 Unfair challenge on Kolo Toure by Kevin Doyle results in a free kick. Direct free kick taken by Vincent Kompany.
69:10 James Milner takes a shot.
68:56 Corner from left by-line taken by David Silva.
67:40 Substitution Gareth Barry goes off and Adam Johnson comes on.
66:00 Stephen Ward is flagged offside by the assistant referee. Kolo Toure takes the indirect free kick.
64:30 The referee blows for offside. Free kick taken by Marcus Hahnemann.
64:30 Substitution George Elokobi is brought on as a substitute for Stephen Hunt.
63:52 Nenad Milijas takes a shot. Joe Hart makes a save.
62:23 Emmanuel Adebayor takes a shot. Blocked by Christophe Berra. Corner taken by Mario Balotelli from the right by-line, David
Edwards makes a clearance.
60:16 David Silva takes a shot. Save made by Marcus Hahnemann. Corner from right by-line taken by David Silva.
59:03 Mario Balotelli concedes a free kick for a foul on Christophe Berra. Marcus Hahnemann takes the free kick.
58:29 Stephen Hunt challenges Emmanuel Adebayor unfairly and gives away a free kick. Direct free kick taken by Jerome Boateng.
58:29 Booking Stephen Hunt receives a yellow card for unsporting behaviour.
56:08 GOAL - David Edwards:Wolverhampton 2 - 1 Man City David Edwards finds the net with a goal from deep inside the penalty box to the bottom right corner of the goal. Wolverhampton
2-1 Man City.
56:02 Kevin Doyle takes a shot. Micah Richards gets a block in.
53:31 Mario Balotelli takes a shot. Blocked by Kevin Foley.
51:42 Matthew Jarvis decides to take a short corner.
50:43 Matthew Jarvis fouled by Mario Balotelli, the ref awards a free kick. Marcus Hahnemann takes the free kick.
49:49 Kevin Doyle is caught offside. Joe Hart takes the free kick.
47:49 Unfair challenge on Karl Henry by David Silva results in a free kick. Karl Henry takes the direct free kick.
46:24 The ball is sent over by Matthew Jarvis, save by Joe Hart.
45:01 The referee starts the second half.
45:00+1:24 The ref blows to end the first period.
Correction - 44:01 Free kick awarded for a foul by Gnegneri Toure Yaya on Christophe Berra. Direct free kick taken by Marcus Hahnemann.
44:01 Free kick awarded for an unfair challenge on Christophe Berra by Gnegneri Toure Yaya. Stephen Ward takes the free kick.
43:40 The ball is delivered by Gareth Barry, clearance by Christophe Berra.
40:55 Mario Balotelli delivers the ball, Header by Emmanuel Adebayor from deep inside the penalty area misses to the right of the
40:00 Effort on goal by Matthew Jarvis from just inside the box goes harmlessly over the target.
39:27 Corner taken right-footed by Matthew Jarvis from the left by-line, save made by Joe Hart.
38:56 Stephen Hunt takes a shot. Vincent Kompany gets a block in.
37:10 Emmanuel Adebayor challenges Kevin Doyle unfairly and gives away a free kick. Direct free kick taken by Nenad Milijas.
36:10 Emmanuel Adebayor is flagged offside by the assistant referee. Marcus Hahnemann takes the indirect free kick.
33:56 Foul by Vincent Kompany on Kevin Doyle, free kick awarded. The free kick is swung in left-footed by Stephen Hunt, clearance
made by Vincent Kompany.
32:23 The assistant referee flags for offside against Mario Balotelli. Indirect free kick taken by Richard Stearman.
29:32 Assist on the goal came from Matthew Jarvis.
29:32 GOAL - Nenad Milijas:Wolverhampton 1 - 1 Man City Nenad Milijas fires in a goal from just inside the penalty area to the bottom right corner of the goal. Wolverhampton 1-1
27:33 Foul by Emmanuel Adebayor on Stephen Ward, free kick awarded. Nenad Milijas takes the direct free kick.
27:13 Inswinging corner taken right-footed by Matthew Jarvis played to the near post, Gareth Barry manages to make a clearance.
26:32 The ball is sent over by Matthew Jarvis, David Edwards takes a shot. Joe Hart makes a save. Matthew Jarvis takes a inswinging
corner from the left by-line played to the near post, Header from inside the area by David Edwards strikes the post.
26:09 Mario Balotelli concedes a free kick for a foul on Stephen Hunt. Stephen Hunt takes the direct free kick.
24:48 Mario Balotelli gives away a free kick for an unfair challenge on Richard Stearman. Direct free kick taken by Kevin Foley.
22:49 Penalty awarded for an unfair challenge on David Silva by Richard Stearman. Assist on the goal came from David Silva.
22:49 GOAL - Emmanuel Adebayor:Wolverhampton 0 - 1 Man City Emmanuel Adebayor scores a penalty. Wolverhampton 0-1 Man City.
20:13 Inswinging corner taken left-footed by Stephen Hunt, clearance made by Gareth Barry.
18:30 The ball is crossed by Jerome Boateng, Mario Balotelli takes a shot. Blocked by Christophe Berra. Corner taken by David Silva
from the left by-line, Mario Balotelli takes a shot. Christophe Berra gets a block in.
17:54 Nenad Milijas gives away a free kick for an unfair challenge on Kolo Toure. Gnegneri Toure Yaya takes the free kick.
16:20 Unfair challenge on James Milner by Stephen Ward results in a free kick. Shot comes in from Mario Balotelli from the free
kick, blocked by David Edwards. Unfair challenge on Kevin Foley by James Milner results in a free kick. Direct free kick taken
by Marcus Hahnemann.
14:34 The referee gives a free kick against Mario Balotelli for handball. Richard Stearman takes the indirect free kick.
14:19 David Edwards takes a shot. Save by Joe Hart.
10:46 The ball is swung over by Kevin Foley.
10:01 Centre by Matthew Jarvis.
9:06 Free kick awarded for a foul by Mario Balotelli on Richard Stearman. Direct free kick taken by Marcus Hahnemann.
8:16 The ball is sent over by James Milner.
7:57 Micah Richards takes a shot. Stephen Hunt gets a block in.
6:37 Stephen Ward is caught offside. Joe Hart takes the indirect free kick.
4:12 Effort on goal by Mario Balotelli from just outside the area goes harmlessly over the target.
2:24 Effort from the edge of the penalty area by Gareth Barry goes wide of the left-hand post.
1:58 A cross is delivered by James Milner, Shot from close range by Mario Balotelli misses to the right of the goal.
0:33 Vincent Kompany concedes a free kick for a foul on Kevin Doyle. Kevin Foley restarts play with the free kick.
0:00 The referee starts the match.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.