Alex Teixeira and Fernandinho got the goals as a hugely impressive Shakhtar side dealt Chelsea’s Champions League qualification hopes a blow with a deserved victory in Donetsk.
The Brazilian duo did the damage with a goal early in each half as the Ukrainian champions asserted themselves at the top of Group E and extended their 11-month unbeaten record at the Donbass Arena.
Oscar netted a late consolation but, for Chelsea, the path to the knockout stages now looks far more perilous - despite Juventus helpfully drawing their ninth continental match in a row against Nordsjaelland - after failing what was always likely to be a stern test of their renewed European aspirations.
Roberto Di Matteo made two changes to the Chelsea side which saw off Tottenham on Saturday. John Terry captained the team for the first time since accepting his FA punishment for racially abusing Anton Ferdinand, while Frank Lampard was recalled to the midfield in place of Eden Hazard.
Shakhtar, meanwhile, were unchanged from the side which came close to inflicting a shock defeat on Juventus last time out, with the creative trio of former Blues target Willian, Henrik Mkhitaryan and Teixeira supplying Luiz Adriano up front.
The Ukrainians began with the confidence of a side unbeaten at home for almost a year, and took the lead three minutes in when Adriano’s attempted shot struck Terry and broke for Teixeira, who calmly stroked the ball low beyond a helpless Petr Cech.
Chelsea steadied the ship but Shakhtar continued to look the more incisive, and, on 16 minutes, Willian jinked inside Ramires and ripped a shot over Cech’s crossbar.
Things got worse for the European champions with the early withdrawal of Lampard through injury, and soon after the lively Willian tested Cech again with a curling drive.
The Blues goalkeeper made further good saves to deny Mkhitaryan and Tomas Hubschmann as the half drew to a close, and in truth the visitors were fortunate to reach the break only one goal behind.
Chelsea tried to rally at the start of the second half but soon found themselves in big trouble again, however, when Hazard gave the ball away cheaply on the halfway line and Adriano fed Fernandinho, who fired in from the angle.
Left with a mountain to climb, Di Matteo’s men pushed on, but were repeatedly frustrated by disciplined Shakhtar defending which limited them to hopeful shots from range.
Daniel Sturridge replaced the ineffective Fernando Torres with 20 minutes left, and the England man made an immediate impact, cleverly playing in Hazard to force a solid stop from an otherwise criminally underworked Andriy Pyatov.
But this was a rare moment of invention from a Chelsea attack uncharacteristically devoid of imagination, and it was Shakhtar who continued to look more dangerous on the counter.
Mkhitaryan and Hubschmann both went close to adding insult to injury before the Blues gave themselves hope of a miraculous comeback on 87 minutes, as Branislav Ivanovic surged to the byline and crossed low for Oscar to tap home.
But it proved to be false hope, and Shakhtar ran out worthy winners.