Goals from Ruben Dias and Bernardo Silva were enough for Manchester City to overcome Aston Villa 2-1 on Wednesday night.
The victory keeps the pressure on Premier League leaders Chelsea, who beat Watford 2-1 on the same night.
The visitors' domination was staggering from the outset and eventually told on 27 minutes, when they broke the deadlock through an unlikely source. Raheem Sterling's pull-back worked its way to Dias on the edge of the area, before the centre-back provided a delicious finish into the near corner.
Pep Guardiola's men doubled their advantage just before the break, courtesy of an inch-perfect counter attack. Released down the right flank by Fernandinho, Gabriel Jesus showed no hesitation to loft the ball into the path of Silva, who sensationally volleyed home past a helpless Emi Martinez.
The hosts didn't lie down, however, and came out fighting after the interval. Within 90 seconds of the restart, Ollie Watkins had finished brilliantly at Ederson's near post to convert Douglas Luiz's corner.
The Villans grew into proceedings and visibly became more confident after notching that goal. Indeed, it was Steven Gerrard's side that came closest to grabbing a fourth goal of the night with 15 minutes remaining. Carney Chukwuemeka found himself through on goal courtesy of Emi Buendia's ball around the corner, only to be thwarted by the onrushing Ederson.
The City rearguard stood firm to the late Villa pressure, eventually earning a 2-1 win that keeps them within a point of Chelsea at the summit of the table, while Gerrard's side remain in 13th place.
Here's how the players rated at Villa Park.
ASTON VILLA PLAYER RATINGS
1. Goalkeeper & defenders
Emi Martinez (GK) - 5/10 - Might feel aggrieved to have not done better for the first, but had no prayer of keeping out the second.
Matty Cash (RB) - 6/10 - Always quick to get out to his man and did well to register six ball recoveries, although was largely overwhelmed by Sterling.
Ezri Konsa (CB) - 6/10 - Showed some nice composure in possession and was alive to the danger for large parts, but was fairly powerless to the onslaught of attacking genius.
Tyrone Mings (CB) - 7/10 - Pretty stoic defending in the face of such incessant pressure, holding strong while under the cosh to make eight interventions.
Matt Targett (LB) - 5/10 - Grew into the game and gradually managed to cope better with the threat of Riyad Mahrez, although failed to provide any support upfield.
Douglas Luiz (CM) - 7/10 - Got through a fair bit of running, attempting to plug gaps where necessary, and demonstrated a nice passing range, playing five key passes - including the assist for Watkins' strike.
Marvelous Nakamba (CM) - 6/10 - Livened up after the break and started pressing much more aggressively to replicate the sort of energy he's showed in recent weeks, eventually really disrupting City's play and managing five tackles.
John McGinn (CM) - 6/10 - A typically tenacious display, scurrying around to limit the visitors' time on the ball.
Emi Buendia (RW) - 5/10 - Had some nice touches on the ball when Villa aimed to break upfield, but his general build-up play often wasn't good enough.
Ollie Watkins (ST) - 7/10 - Really good 'number nine' play whenever his colleagues could get the ball that far up the pitch. Drew fouls, brought others into play and dragged his side forward, getting his reward with a fantastic goal.
Leon Bailey (LW) - 4/10 - Never really got into the game before being forced off after half an hour with what looked like a hamstring problem.
Ashley Young (LW) - 5/10 - Didn't have a massive impact on proceedings but did a valiant job when moved to left-back.
Carney Chukwuemeka (RW) - 5/10 - Really should have equalised late on, but failed to beat Ederson in a one-on-one situation.
Morgan Sanson (CM) - N/A
MANCHESTER CITY PLAYER RATINGS
5. Goalkeeper & defenders
Ederson (GK) - 7/10 - Had no chance of keeping Watkins' strike out but made a pivotal stop from Chukwuemeka with 15 minutes to go.
Joao Cancelo (RB) - 7/10 - This right-back definitely plays better at left-back. Still put in a delightful performance, if not as influential.
Ruben Dias (CB) - 8/10 - Fantastic finish to put City ahead in the first half and was as solid as you'd expect at the other end.
Nathan Ake (CB) - 7/10 - Had to remain alert to make a couple of vital interventions at dangerous moments, but really didn't have too much to do.
Oleksandr Zinchenko (LB) - 7/10 - Provided some key cover at times, registering four ball recoveries, and contributed to build-up play well, playing some nice progressive balls and managing one key pass.
Fernandinho (CM) - 8/10 - Showed his experience to make breaking up play and disrupting the opposition's flow look as easy as anything. Distributed possession so efficiently, too, notably playing a huge part in his side's second.
Rodri (CM) - 8/10 - Impenetrable when covering his defensive colleagues from opposition counter attacks, making five ball recoveries.
Bernardo Silva (CM) - 9/10 - Absolutely superlative. Glided around the turf as if in a training session, elegantly strutting his stuff between midfield and attack. Linked and created things effortlessly, and topped off his outing with a phenomenal first-time volley to make it 2-0.
Riyad Mahrez (RW) - 6/10 - Great alertness to his surroundings in such congested areas, worrying his opposition with some characteristically neat touches in the final third.
Gabriel Jesus (ST) - 7/10 - Floated around nicely throughout, causing huge problems with his fluidity. Linked with colleagues seamlessly and got an assist that screamed confidence for Silva's strike.
Raheem Sterling (LW) - 8/10 - Had the beating of his man throughout, looking razor sharp with some brilliant footwork and creativity. Grabbed the assist for his side's opener - one of five key passes he managed on the night.
Jack Grealish (LW) - N/A