Victor Moses headed home from Juan Mata's 94rd-minute corner to steal the three points needed to go level on points with the Ukrainian side at the top of the league.
Here, Sports Mole takes a closer look to see if the result was harsh on the visitors.
On target 7
On target 4
Was the result fair?
No. Shakhtar Donetsk did enough to win at least a point at Stamford Bridge tonight. It's a bit of a cliche, but Chelsea showed the stuff of champions to dig deep and find the winning goal. It was by no means a bad performance by the Blues, who did look threatening going forward.
8/10. Chelsea's attack worked well tonight, and Fernando Torres started brightly. The Spaniard charged down Andriy Pyatov's clearance as quick as a flash to give Chelsea the lead. Juan Mata had another good game, as did Oscar. The young midfielder scored a great goal to put Chelsea into the lead before half-time, smashing home Pyatov's headed clearance from long range. Chelsea's problems were at the back; more specifically, David Luiz. The Brazilian was far too casual and, at times, looked uninterested.
8/10. The visitors were probably the better team tonight, but they switched off at a corner to allow Victor Moses to win the game for Chelsea. The Ukrainian side are a slick outfit, with Fernandinho pulling the strings in midfield for Willian, Henrik Mkhitaryan and Luiz Adriano. Darijo Srna and Razvan Rat were constant threats down the flanks. You can see why this team have won every game in the Ukrainian league so far, as they were a joy to watch. The simplicity to their play was the best part. Both of their goals came from terrific build-up play, in which they worked the angles well to create and opportunity. Willian was the profiteer on both occasions. Their one major weakness was the goalkeeper Pyatov, who looked very erratic.
Sports Mole's man of the match
Darijo Srna: He was up and down the right-hand side all game. He laid on Willian's second goal, while making a few decisive blocks in defence.
Carlos Velasco Carballo had to blow the whistle a bit tonight, but never for anything serious. There was a penalty claim for Ramires, which was one that could have gone either way. In general, he let the game flow and there was no real foul play. David Luiz made the most obvious foul and rightly received a booking. All in all, not a bad performance.
Chelsea: The Blues travel to Turin to play Juventus next, but will feel a lot better going into the game on the back of a win.
Shakhtar: The Ukrainian side travel to Nordsjaelland in a game that they really must win.