Goals from David Silva, Aymeric Laporte and Bernardo Silva capped a routine win for Manchester City, who beat Shakhtar Donetsk 3-0 inside the Metalist Stadium.
Pep Guardiola's side dominated the opening proceedings, with Gabriel Jesus, Riyad Mahrez and David Silva all passing up opportunities to take the lead, before the diminutive Spaniard finally broke the deadlock after 30 minutes.
Jesus' initial shot was blocked, with the ricochet falling kindly to D. Silva inside the penalty area, who volleyed beyond Andriy Pyatov for a deserved lead at the Metalist Stadium.
The second soon followed for the visitors just five minutes later, as Aymeric Laporte was left unmarked from a corner, who managed to stoop and head home to put City in a commanding position before half time that their play justified.
Shakhtar looked to rally in the second period, however City always looked a threat when they went forward, and made it 3-0 with 20 minutes remaining when substitute Bernardo Silva scored just a minute after his introduction, with his strike hitting the post on its way past Pyatov.
That proved to be the final goal for a rampant City side, who moved to the top of Group F following a routine win in the Ukraine.
Here's a breakdown of the game below:
Key Talking Point
Manchester City were at their devastating best in Kharkiv, and could've quite easily been out of sight prior to D. Silva's opener.
Jesus took to long to get a shot away and allowed Pyatov to smother after 15 minutes, while Mahrez had an effort cleared off the line and D. Silva struck the outside of the post before his goal on the half hour, which was no less than the Premier League side.
Guardiola's side were relentless in their attacking play - especially in the first half - and played at a tempo that their hosts simply couldn't live with, sending an ominous warning to sides set to face them in the coming weeks that City are approaching the high standards they set last season.
Starting XI: Ederson (6); Stones (8), Otamendi (7), Laporte (9), Mendy (7); De Bruyne (7), Fernandinho (7), D. Silva (8); Mahrez (7), Jesus (6), Sterling (7).
Substitutes: B. Silva (7), Walker (6), Foden (N/A).
Perhaps a surprise to name a defender as City's best player, however Aymeric Laporte proved why people rate him so highly.
The Frenchman was solid at the heart of Guardiola's defence, and is tailor-made to play with the ball at his feet, making him a defender the club can rely on for both now and the future.
His performance was deserving of a goal, which he got in the first half, which capped a wonderful evening for Laporte.
laporte will be captain in a couple of years no doubt— patrick (@BescobyPatrick) October 23, 2018
Knew he was good on the ball, didn't expect him to be so good at the horrible, physical bits of defending. Absolute beast— trick*star (@trickytrev83) October 23, 2018
Developing into a world class Centre half— Will Mawdsley (@mawders75) October 23, 2018
Laporte absolute quality as always 👏🏼👏🏼👏🏼— Melissa armstrong (@mel_armstrongx) October 23, 2018
While the scoreline reflected City's dominance, one man who wasn't quite at the same level as the rest of his teammates was Gabriel Jesus.
Starting ahead of Sergio Aguero, the Brazilian wasted a terrific chance to open the scoring after 15 minutes to get a decent shot away, while his shooting all night was somewhat wayward when he could've helped himself to at least one goal.
His movement and link-up play was impressive however, as his run in the Bernardo Silva goal will testify, however Jesus' confidence in front of goal looks a tad fragile.
Jesus looks a bit unsure of himself. Other than that, superb performance from City. One or two shaky moments at the back but about 10/15 good attacks, and you can’t say fairer than that— Sam Lee (@Sammy_Goal) October 23, 2018
Sell or loan Gabriel Jesus, he's not good— Gabriel Fernandes (@govao7) October 23, 2018
That's what I mean about Gabriel Jesus, his poor first touch and bad pass made that more difficult than it should have been. Meant Sterling had to delay his run, play a more difficult ball which put Mahrez in his weaker foot.— Liam Richards (@liamr86) October 23, 2018
Starting XI: Pyatov (5); Matvyenko (4), Kryvtsov (5), Rakitskiy (5), Ismaily (5); Stepanenko (5), Maycon (5); Wellington Nem (5), Kovalenko (4), Fernando (6); Moraes (5).
Substitutes: Patrick (5), Bolbat (5), Dentinho (N/A).
Shakhtar Donetsk return to domestic action this weekend when they travel to face Arsenal Kyiv, while Manchester City are on the road themselves when they play Tottenham at Wembley next Monday night.
The two sides will play each other once again in their next Champions League fixture at the Etihad Stadium in November.