Manchester City's remarkable run continued at the Etihad last night, as three late goals helped them to see off an inspired Wolves outfit.
The scoreline flattered the hosts, who were made to work for their victory - a 21st in a row in all competitions.
Here's how each individual fared during Tuesday night's encounter.
Ederson - 7
Nothing he could do for the Wolves goal and didn't have much to do aside from that. Confident in possession as usual.
Kyle Walker - 7
Began to get forward and influence the game as City chased a winner and provided the cross for Jesus' goal.
Ruben Dias - 7
Outmuscled by Coady for the equaliser, but had defended well against Traore in the first half and produced one fine late interception.
Aymeric Laporte - 7
Unfortunate to have a goal ruled out. Carried the ball forward well in the first half when Wolves defended deep.
Joao Cancelo - 6
Played as a left-winger at times and almost created a goal for Sterling in the early stages, but influence waned as the game went on.
Rodri - 6
Excellent pass in the build-up to City's opening goal and his use of the ball was good, but he did give away the foul that led to the equaliser.
Kevin De Bruyne - 6
One misplaced in the first half had Guardiola throwing his arms up in disgust. Some fine moments but still looked a little below the brilliant standards he usually sets.
Bernardo Silva - 8
Was superb with the ball but his best moments came out of possession. An incredible work rate and his pressing of the Wolves' defence was brilliantly relentless.
Raheem Sterling - 7
Came close with two good second-half efforts and probably had enough chances to have got on the scoresheet.
Riyad Mahrez - 8 (Man of the match)
Created the first goal with a wonderful first touch and was a constant threat for City down the right with his close control and trickery - all before getting himself on the score sheet late on.
Gabriel Jesus - 8
Looked like being a frustrating night until he fired home City's goal to make it 2-1. Had missed some good chances before then but was in the right place, and bagged another late on.
Ilkay Gundogan (for Sterling 81): Little time to influence game
Subs not used: Jack Steffen, John Stones, Eric Garica, Oleksandr Zinchenko, Fernandinho, Phil Foden, Ferran Torres, Sergio Aguero
Rui Patricio - 8
Two of Patricio’s saves to deny Bernardo and De Bruyne were absolutely brilliant. He kept Wolves in the game at The Etihad as City laid siege on his goal.
Wolves’ number one received a bit of stick earlier this season, but there’s no doubting his class and he really showed it in this game.
Leander Dendoncker - 6
Unlucky with his own goal, but there’s no getting away from the fact that Sterling tortured him at times. Nevertheless, Dendoncker continued to plug away in a position he hasn’t played an awful lot of football in this season.
Conor Coady - 6
It’s a surprise Coady was even in City’s box for that free-kick but he attacked it like a regular goal contributor. You would never have known that goal is Coady’s first for Wolves since a penalty at Bolton in 2018.
His distribution was unusually poor and Coady failed to play out from the back on numerous occasions, though that was never going to be easy against City’s excellent pressing game. He also played Jesus onside for City’s late fourth.
Romain Saiss - 5
Saiss struggled with and without the ball all evening. There were a few occasions when he whipped a ball forward to no one, while he also missed a simple pass infield to Neto in the second half.
The defender continued to give the ball away and City eventually punished him and his teammates late on.
Ki-Jana Hoever - 6
Hoever was a surprise inclusion and didn’t disgrace himself defensively at right or left wing-back. He was caught out by Walker for City's winner.
Barely got forward, but was that to be expected against this City team?
Ruben Neves - 5
Neves was miles off his best and clearly didn’t enjoy his task of chasing round City’s midfielders all evening. When he got the ball his passing was inevitably poor after going so long without it.
Joao Moutinho - 7
It was the wily Portuguese midfielder who dropped to his knees to win the free-kick that led to Wolves’ equaliser. Moutinho also delivered the free-kick with excellent precision.
He barely had a kick in a frustrating first half but Moutinho got Wolves moving a little bit after half-time.
Jonny Castro Otto - 5
Given a torrid time by Mahrez, but very few left-backs in the Premier League aren’t. Jonny was caught out by Mahrez’s run for City’s opening goal and never really got to grips with his man.
Nelson Semedo - 6
Helped Hoever out in the first half and almost played as a second right wing-back at times. He quickly switched back to his natural position in the second half and got forward well on occasions, but he also played Walker onside in the build-up to City’s decisive second goal.
Adama Traore - 7
Traore was the one player who was a constant thorn in City’s side all night. He held it well in the first half, despite not having a great deal of support.
It briefly looked like Traore might be able to repeat his magic of October 2019 and he should have done better with one left-footed effort that he blazed over the bar.
Pedro Neto - 6
Looked frustrated in the first half as Wolves defended deep before coming to life in a 15-minute spell in the second half. He had a few good moments, but nothing of note.
Fabio Silva (for Jonny, 55) - 6
Gave Traore and Neto a hand with the pressing and Wolves looked a threat with him on the field.
Owen Otasowie (for Neves, 89) - N/A
Gave the ball away with his first touch and City ruthlessly punished him.
Not used: Ruddy, Boly, Ait-Nouri, Kilman, Vitinha, Gibbs-White, Willian Jose