Ukrainian champions breathing space at the top of Group E and extend an extraordinary unbeaten run stretching back 11 months.
It was Chelsea’s first loss since they went down to Atletico Madrid in the UEFA Super Cup, but things would have been far worse for the Premier League leaders had Juventus not been held to a 1-1 draw at FC Nordsjaelland.
Chelsea remain in second place but are now three points behind Shakhtar ahead of the return game on November 7, while coach Roberto Di Matteo must hope for a quick recovery prior to Sunday’s visit of Manchester United.
“It was a difficult game. Shakhtar played well and deserved it. I don’t know what happened,” said Chelsea centre-back David Luiz.
“The Shakhtar players are intelligent and didn’t give us any opportunities. Only in the last 15 minutes did we have good chances.
“We didn’t play well. It is a shock following some good performances in the Champions League. Congratulations to Shakhtar.
“Sometimes you can’t play well, and tonight was like that. We need to think about the next game because Chelsea are a big team and they need to win.”
John Terry returned for Chelsea after missing their 4-2 win at Tottenham Hotspur as he served the first instalment of a four-game ban for racially abusing QPR’s Anton Ferdinand, but his first contribution was unfortunate.
Ironically sporting a Unite Against Racism armband, one year to the day since his clash with Ferdinand, the Blues captain unwittingly diverted a shot into the path of Teixeira, who drilled the hosts into a third-minute lead.
Chelsea stalwart, Frank Lampard, was making his 100th European appearance, but he endured a similarly forgettable start to the game, with injury forcing him off in the 16th minute.
Eden Hazard replaced Lampard and helped craft an opening for Fernando Torres, but Shakhtar goalkeeper Andriy Pyatov came out to save at the Spaniard's feet.
The hosts refused to be flustered by Chelsea's forays into their territory, however, and the dangerous Willian twice threatened to extend their lead with attempts from long range.
The Brazilian with the afro haircut then teed up Henrik Mkhitaryan for a powerful shot that Petr Cech parried, while the Czech goalkeeper also had to claw away a close-range effort from Yaroslav Rakitskiy.
The half-time whistle came as a relief for Di Matteo's side but things got no better in the second half, as the home side doubled their advantage inside seven minutes.
Hazard was caught in possession in midfield by Fernandinho, who hared upfield to collect a lay-off from Luiz Adriano before crashing a precise low shot into Cech's bottom-right corner.
Pyatov had to repel long-range shots from Hazard and Ramires, but Mircea Lucescu's men refused to be pushed back.
Cech twice had to deal with smartly hit shots from Mkhitaryan, while Adriano saw a header bobble narrowly wide of the left-hand post. Oscar tucked home Branislav Ivanovic's low cross in the 88th minute to claim a consolation goal for Chelsea.