Comprehensive 5-0 winners over Burnley on the weekend, the Premier League champions were just as dominant in Ukraine with two first-half goals key to inflicting Shakhtar's first home defeat to an English side in Europe.
David Silva, who hit the winner against Hoffenheim three weeks ago, broke the deadlock on 30 minutes and was quickly joined on the scoresheet by Aymeric Laporte.
Bernardo Silva added gloss just over a minute after stepping off the bench in the second half as Pep Guardiola's side, who welcomed Kevin De Bruyne into the starting XI for the first time this term, moved top of Group F after Lyon's 3-3 draw with Hoffenheim.
City's finishing initially lacked the conviction to match their dominance as Gabriel Jesus and Riyad Mahrez passed up fine opportunities to open the scoring.
David Silva next saw a cute close-range attempt come back off the post but the midfielder did not have to wait long for his goal, volleying in after Jesus' deflected shot looped up kindly.
2 - David Silva has scored in consecutive away games in the Champions League for the first time in his career. Leader. pic.twitter.com/31pOSr3cjN— OptaJoe (@OptaJoe) October 23, 2018
Shakhtar's defensive disorganisation was punished a second time five minutes later with an unmarked Laporte gleefully heading home De Bruyne's corner.
Ismaily's desperate sliding intervention denied David Silva a second soon after the restart before the Brazilian left-back drew a rare save from Ederson at the other end.
But any remote threat of a comeback was extinguished when Mahrez teed up Bernardo Silva for a measured bottom-corner finish 20 minutes from time, while the crossbar kept Raheem Sterling from adding further damage in the dying moments.
What it means: Guardiola need not be so negative
Guardiola's pre-match assessment that his team were "not ready" to win the Champions League appeared little more than false modesty on the strength of this performance as his team did what no other English outfit had previously managed in beating Shakhtar on home soil.
When you make a sub and they score after 86 seconds pic.twitter.com/uFzRFcm28N— Manchester City (@ManCity) October 23, 2018
David Silva overshadows star partner
Pre-match interest centred on De Bruyne's return to the XI but it was David Silva who ran the show at Metalist Stadium, picking out glorious passes at will and notching for the second straight Champions League match.
Scattered defence restricts Shakhtar
Though they were under duress from the opening moments, Shakhtar's back four failed to execute even the basics of marking at corners, and have now conceded seven times in their three continental fixtures.
Key Opta Facts
1 - Manchester City are the first English side to win away at Shakhtar Donetsk in European competition, after the Ukrainian side had won five and drawn two of the previous seven such games. Business. pic.twitter.com/sBRH8YFNMO— OptaJoe (@OptaJoe) October 23, 2018
- Shahktar have kept just one clean sheet in their last 18 games in the Champions League, with this their 10th defeat in this run (W6 D2).
- City have lost only two of their last 12 group stage games in the Champions League (W8 D2), netting at least once in every fixture.
- Only Sergio Aguero (33) has been directly involved in more Champions League goals for City than David Silva (15 – seven goals and eight assists).
- This was the first Champions League game City have won without Aguero in the starting XI since October 2017 (2-1 v Napoli).