After two games City have six points and are already three points clear of Shakhtar and Napoli.
The Blues face Napoli at home in their next game, meaning a victory would virtually put them in the knock-out round.
Wrapping up an early qualification would be especially handy given City's final game is in Ukraine against tonight's opponents, who are no mugs.
Paulo Fonseca's side took the game to the Blues in the first half, using a high defensive line and some intricate interplay to counteract Pep Guardiola's plans.
City have scored at least four goals in four of their last five games, and could have done so again at the Etihad Stadium, only for a slightly worrying return to last season's wasteful form.
Kevin De Bruyne and Leroy Sane missed excellent first-half chances, while in the second half Sergio Aguero, who needs one more goal to equal City's all-time scoring record, missed a penalty, and Raheem Sterling put a sitter wide.
In the end it did not matter, because a superb De Bruyne goal three minutes into the second half was eventually rounded off by a late Sterling goal to allay any lingering nerves.
Guardiola will certainly be pleased with the form of Fabian Delph at left-back, as City fear Benjamin Mendy could face a long spell on the sidelines.
New goalkeeper Ederson also proved to be a reliable presence when called upon, stopping several Shakhtar crosses and shots and helping to kick-start a couple of City counter-attacks - including one which led to City's penalty - with his superb distribution.
Watch Sam Lee's take on the game, in 360, below
I've managed to make a 360 video work! So enjoy my analysis of the match while you scroll around the EtihadPosted by Sam Lee on Tuesday, 26 September 2017