In a game that City had expected to have dominated and eased through, bottom of the league Wolves had other ideas for making the current champions, by making it difficult for them.
Strand Larsen put the hosts ahead in a surprise start after seven minutes, before a wonder strike from Gvardiol in the 33rd minute evened the game before the break.
Wolves defended for majority of the second half, in what looked to be enough to secure a vital point for under pressure boss Gary O'Neil, but a last minute header from John Stones stole the three points.
It was a controversial end to the game as the goal was initially ruled out for offside, however, following a quick VAR review the goal was awarded.
The late goal took City top of the league for the time being and Wolves to the bottom of the Premier League.
Story of the Match
Manchester City made three changes from their 3-2 win over Fulham. Foden and Grealish dropped out, for Doku and Savinho, while John Stones replaced Manu Akanji - who has had fitness concerns this week.
Nathan Ake also made the match day squad, after a concern of injury while away on international duty. However, Kyle Walker missed out alongside Kevin De Bruyne due to injury.
Wolves made two changes to their starting 11 from their 5-3 defeat to Brentford. Goalkeeper José Sá came in to replace the injured Sam Johnstone, who picked up an injury in training, and Bueno came in to replace Forbes as Wolves changed to a back 5.
It was the hosts that took a surprising lead in the 7th minute against current champions when Strand Larsen turned home from Semedo's perfectly weighted cross.
Wolves tried to hold onto the 1-0 lead with José Sá providing some fine saves, however City fought back and eventually found a breakthrough in the 33rd minute when Gvardiol's strike curled into the top right corner from outside the box.
Little happened after the break, City pushed and probed for a winner, but Wolves' defence held strong, especially to keep the leagues top goalscorer, Erling Haaland, quiet all game; making it no goals in three Premier League games.
Just as it seemed Wolves would hold firm to collect a huge point, John Stones rose the highest in the 95th minute following a corner from Phil Foden to power home a header past, as it seemed initially, an impeded José Sá.
The goal was disallowed on field by the referee as the linesman put up his flag due to what it seemed as Bernardo Silva sat in an offensive position affecting José Sá, however following a quick VAR review Chris Kavanagh was sent to the monitor and reversed the decision which caused some controversy.
The full-time whistle created boos around the Molineux, but John Stones was Manchester City's hero in the end, winning all three points and taking City top of the league.
The defeat for Wolves takes them bottom of the league, with only one point in eight games, leaving under pressure boss Gary O'Neil a lot of work to do to turn things around.
Player of the match - John Stones
When Wolves held on for so long as we entered added-time, it looked as if Manchester City's expectations of three points were gone.
However, up step John Stones who won his team the game. The towering header in the 95th minute turned expectations into reality and sent the three points back to Manchester.
Not only was his goal the difference, but his defensive display was excellent and comfortable throughout the afternoon.




