Match ends, Wolverhampton Wanderers 1, Manchester City 5.
Kevin de Bruyne's stunning four-goal haul helped Manchester City thump Wolves and restored their three-point lead at the top of the Premier League.
Pep Guardiola's side now need only four points from their final two fixtures to ensure they will finish above Liverpool and win their fourth title in five seasons.
De Bruyne has played a central role in all of those previous triumphs but this was an individual display that must rank among the finest of his stellar collection in a City shirt.
The Belgian started the move that led to his side's opener, and finished it too, running on to Bernardo Silva's pass to slot home.
Wolves did not take long to respond, with a rapid counter-attack ending when Pedro Neto found Leander Dendoncker in space on the edge of the box to fire past Ederson.
This was De Bruyne's stage, however, and he quickly put his side back in front. Again, he played a part in the build-up too, and was in the right place to smash in the rebound after Jose Sa beat Raheem Sterling to his pass.
His third goal - again with his so-called weaker left foot - was the pick of the bunch, and saw him drive towards the edge of the area and curl into the bottom corner.
De Bruyne's hat-trick was his first for City and at 24 minutes was the third-quickest in Premier League history.
He celebrated in style by copying the meditation celebration of his soon-to-be team-mate Erling Haaland, who City reached an agreement to sign this week, but he was not finished yet.
City came out for the second half looking for more goals to improve their goal difference, which was already three better than Liverpool's before kick-off.
Raheem Sterling thought he had extended their lead when he ran clear and beat Sa but an offside flag cut short his celebrations.
It was left to De Bruyne to make it 4-1, typically making no mistake when a Phil Foden cross was deflected into his path and finding the bottom corner with his first right-footed effort of the night.
More chances followed, with Foden hitting the post and Sterling missing an easy chance but eventually someone else did get in on the act, with Sterling tapping into an empty net after Sa denied Joao Cancelo.
This was still the De Bruyne show, however. City are not over the line yet, and their next test is an awkward trip to West Ham on Sunday, but on this evidence they will take some stopping.
- Follow live text commentary of Wednesday's Premier League action
- Visit our Wolves page
- Go straight to all the best Manchester City content
Laporte injury is a cause for concern
This was a night to savour for Guardiola and City's travelling fans but the one note of concern was the sight of Aymeric Laporte and Fernandinho being forced off with an injury in the second half.
City may have bolstered their attack for next season with their agreement to sign Borussia Dortmund striker Haaland but it is defence where they are short right now.
With Ruben Dias, John Stones and Kyle Walker already out injured for the season and Nathan Ake not fully fit,Guardiola chose to put veteran midfielder Fernandinho in his back-line alongside Laporte at Molineux.
Wolves were set up to make the most of any lack of pace in City's rearguard and, initially, looked dangerous whenever they broke forward.
When Dendoncker's equaliser came via that route and left the home fans in raptures, it seemed Wolves would ensure City were in for a difficult night. De Bruyne had other ideas, however.
A good game for Lage to miss
Wolves boss Bruno Lage was absent from the dugout after testing positive with Covid, and communicated with his coaching staff by phone.
One can only imagine he attempted to get the message across on a number of occasions that they should try to stop City's number 17, but the task was beyond any of his players.
De Bruyne almost added a fifth goal for himself before the end, and the only surprise was that he fired against the post on that occasion rather than finding the corner of the net.
He had done little else wrong all night, and was rightly serenaded by City's jubilant supporters when he celebrated with them at the final whistle.
- 1Malheiro de Sá
- 19Castro Otto
- 20Tomás Oliveira
- 28João MoutinhoSubstituted forCundleat 85'minutes
- 7NetoSubstituted forMachado Trincãoat 72'minutes
- 9JiménezSubstituted forHwang Hee-Chanat 72'minutes
- 11Machado Trincão
- 17Fábio Silva
- 26Hwang Hee-Chan
- 25FernandinhoSubstituted forMahrezat 77'minutes
- 14LaporteSubstituted forAkéat 61'minutes
- 17De BruyneBooked at 78mins
- 47FodenSubstituted forGrealishat 81'minutes
- 20Bernardo Silva
- 9Gabriel Jesus
- Martin Atkinson
- Shots on Target
Second Half ends, Wolverhampton Wanderers 1, Manchester City 5.
Attempt missed. João Cancelo (Manchester City) right footed shot from a difficult angle on the right is close, but misses to the right. Assisted by Jack Grealish.
Attempt missed. Hwang Hee-Chan (Wolverhampton Wanderers) right footed shot from the right side of the box misses to the left. Assisted by Rúben Neves.
Kevin De Bruyne (Manchester City) hits the left post with a left footed shot from the centre of the box. Assisted by Riyad Mahrez.
Foul by Jack Grealish (Manchester City).
Chiquinho (Wolverhampton Wanderers) wins a free kick in the defensive half.
Foul by Jack Grealish (Manchester City).
José Sá (Wolverhampton Wanderers) wins a free kick in the defensive half.
Offside, Manchester City. Kevin De Bruyne tries a through ball, but Raheem Sterling is caught offside.
Substitution, Wolverhampton Wanderers. Luke Cundle replaces João Moutinho.
Goal! Wolverhampton Wanderers 1, Manchester City 5. Raheem Sterling (Manchester City) right footed shot from very close range to the centre of the goal.
Attempt blocked. João Cancelo (Manchester City) right footed shot from the right side of the box is blocked. Assisted by Jack Grealish with a through ball.
Substitution, Manchester City. Jack Grealish replaces Phil Foden.
Bernardo Silva (Manchester City) wins a free kick in the defensive half.
Foul by Chiquinho (Wolverhampton Wanderers).
Kevin De Bruyne (Manchester City) is shown the yellow card for a bad foul.
Foul by Kevin De Bruyne (Manchester City).
Rayan Aït-Nouri (Wolverhampton Wanderers) wins a free kick in the defensive half.
Substitution, Manchester City. Riyad Mahrez replaces Fernandinho.
- Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment