John Stones’ last-gasp header earned Manchester City a dramatic 2-1 victory at Wolverhampton Wanderers.
The visitors responded to Jorgen Strand Larsen’s early goal through Josko Gvardiol’s stunning strike before half-time, but they were largely frustrated by an in-form Jose Sa.
However, deep into stoppage time, Stones rose to meet substitute Phil Foden’s corner and power in a header.
The reigning champions move on to 20 points, but remain one point behind Liverpool, following the Reds' 2-1 win over Chelsea at Anfield, while Wolves return to the foot of the table following their late heartbreak.
How the match unfolded
The hosts made an ideal start, striking first after just seven minutes when Nelson Semedo delivered a delicious cross in behind City’s defence for Strand Larsen to tuck away.
Sa made a superb reflex save to deny Bernardo Silva soon after, while Ederson thwarted Semedo following a swift counter at the other end.
City levelled in the 33rd minute when Gvardiol whipped a fierce 20-yard strike into Sa's top-left corner, though the Wolves goalkeeper produced another smart stop to keep out a Savinho shot just before the break.
Both sides went close in the early stages of the second half; Sa got down well again to deny Ruben Dias from distance, while Matheus Cunha swept a long-range effort narrowly wide.
City turned up the pressure in search of a winner, with Silva firing into the side-netting before Matheus Nunes saw his effort deflected over the crossbar.
But in the fifth minute of stoppage time, Wolves’ resolve was broken as Stones buried his header beyond a helpless Sa, with the goal given following a VAR review.
Stones’ goal was initially disallowed on-field due to Silva being in an offside position and in the goalkeeper’s line of vision.
The VAR deemed Silva wasn’t in the line of vision and had no impact on the goalkeeper and recommended an on-field review. The referee overturned his original decision and a goal was awarded.
Late heartbreak for Wolves
For the first time in 20 years, Wolves had failed to win any of their opening seven matches in a league season and despite Gary O’Neil’s continued faith in his team, the pressure was starting to mount.
Therefore, they certainly would have been forgiven for not relishing the prospect of welcoming the reigning Premier League champions to Molineux.
Nevertheless, the hosts began the contest with purpose and took the lead in superb fashion, proving their attacking credentials when Strand Larsen provided the finish that Semedo’s brilliant cross warranted.
But their defensive resilience was the standout feature for much of the game – as City grew into it, and eventually brought themselves level, Wolves continued to make life difficult for Pep Guardiola’s side as they desperately tried to hold onto what would have been a morale-boosting second point of the season.
In the end, all of their hard work eventually counted for nothing, with Stones’ last-gasp header a real dagger to their hearts.
Comeback kings strike again
Going behind is familiar territory for City so far this season, this was the fourth time that they have conceded the opening goal, but as with the previous three occasions, they fought back to win.
So, when Strand Larsen opened the scoring, there certainly would not have been cause for any panic as far as Guardiola was concerned.
City gradually found their feet before Gvardiol’s superb strike brought them on level terms and it was only smart saves from Sa which prevented the visitors from completing the turnaround sooner.
Despite Wolves stubbornly keeping them at bay, City kept probing and Stones, who snatched a last-gasp equaliser in the 2-2 draw with Arsenal, was the right man in the right place once more with his thumping header turning one point into three.
The Citizens have set a new club record by extending their unbeaten league streak to 31 matches.
Club reports
Wolves report | Man City report
Match officials
Referee: Chris Kavanagh. Assistants: Constantine Hatzidakis, Tom Bramall. Fourth official: Richard West. VAR: Stuart Attwell. Assistant VAR: Marc Perry.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time