Chelsea's hopes of qualifying for the last 16 of the Champions League are in the balance after a late winner gave Bayer Leverkusen a 2-1 win in Germany.
The Blues knew victory would see them through and they looked in good shape after Didier Drogba's neat finish.
But substitute Eren Derdiyok headed Leverkusen level with 17 minutes to go.
In the final minute Manuel Friedrich headed in to leave the Blues needing a goalless draw or win against Valencia in two weeks' time to progress.
It was a cruel blow for Chelsea, who had done enough to claim at least a draw from this match, but are now left to face a nerve-jangling final Group E matchday encounter with the Spanish side, who put seven goals past Genk on Wednesday.
Chelsea came into the game having lost three of their previous four league matches, leading to suggestions that manager Andre Villas-Boas was under pressure, only months after Roman Abramovich paid £13.3m to acquire his services from Porto.
But while not truly impressive, and despite the result, this was a much improved performance from those three defeats.
Gone was the ill-discipline that marred the loss at QPR, there was none of the suicidal defending that cost them against Arsenal and they were more composed and fluent than at any point during the defeat by Liverpool.
In Daniel Sturridge they had the best player on the pitch, particularly after the match had settled down midway through the first half.
The young England striker was central to everything positive about the Blues in the final third, firstly narrowly over-hitting a through-ball for Juan Mata before getting it spot on second time round to feed in Drogba, who subsequently missed from a tight angle after rounding the keeper.
DID YOU KNOW?
- The last 10 times that a Chelsea Champions League away match was scoreless at half-time, the Blues have gone on to win just once. That was at FC Porto on 25 Nov 2009 (0-1)
Leverkusen were left to rely on their former Chelsea midfielder Michael Ballack in his 100th European game and he nearly delivered before the break with a header from a corner that hit the bar.
But Sturridge was not to be out-shone and early in the second half he provided an inch perfect pass to Drogba, who held off Friedrich before slotting a neat finish into the bottom corner on the turn.
The Blues almost extended their lead a minute later but Frank Lampard headed straight at keeper Bernd Leno from close range following Drogba's nod-on.
That proved something of a turning point as Leverkusen, off the back of the reprieve, seized control of the match.
Stefan Kiessling served warning to the visitors with a header straight at Cech from a Gonzalo Castro cross before substitute Derdiyok was found in plenty of space at the back post by Sidney Sam to head home an equaliser.
Chelsea had a penalty appeal waved away when Drogba fell under a challenge from Friedrich and the Ivory Coast striker volleyed wide soon after as the game appeared destined to end in a draw.
However, with injury time signalled, Friedrich won the game for the home side, rising to plant a header in off the bar from Castro's corner.
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +0:16
Assist by Gonzalo Castro.90:00 +0:16 Goal scored
Goal! - Manuel Friedrich - B Leverk'n 2 - 1 Chelsea Manuel Friedrich scores a headed goal from inside the penalty area. Bayer Leverkusen 2-1 Chelsea.90:00 +0:04
Outswinging corner taken right-footed by Gonzalo Castro,89:55
The ball is crossed by Gonzalo Castro, Jose Bosingwa gets a block in.87:11
Free kick awarded for an unfair challenge on Sidney Sam by Alex. Gonzalo Castro crosses the ball in from the free kick.84:33
Gonzalo Castro concedes a free kick for a foul on Florent Malouda. Jose Bosingwa takes the direct free kick.83:40
Shot by Didier Drogba from deep inside the penalty area misses to the right of the goal.81:39 Substitution
Substitution Stefan Kiessling goes off and Bastian Oczipka comes on.80:11
Unfair challenge on Bernd Leno by Branislav Ivanovic results in a free kick. Free kick taken by Bernd Leno.79:17 Substitution
Substitution Mikel is brought on as a substitute for Raul Meireles.76:49
Outswinging corner taken from the right by-line by Gonzalo Castro, Frank Lampard manages to make a clearance.76:34
Eren Derdiyok takes a shot. John Terry gets a block in.76:12
Jose Bosingwa sends in a cross.75:23
Jose Bosingwa gives away a free kick for an unfair challenge on Eren Derdiyok. Lars Bender takes the free kick.73:19
Didier Drogba is flagged offside by the assistant referee. Bernd Leno takes the indirect free kick.72:07
Sidney Sam provided the assist for the goal.72:07 Goal scored
Goal! - Eren Derdiyok - B Leverk'n 1 - 1 Chelsea Eren Derdiyok scores a headed goal from close range. Bayer Leverkusen 1-1 Chelsea.71:29
Free kick taken by Gonzalo Castro.71:29 Booking
Booking Raul Meireles receives a caution for unsporting behaviour.
Raul Meireles gives away a free kick for an unfair challenge on Andre Schurrle.70:16
Frank Lampard takes the free kick.70:16 Substitution
Substitution Michal Kadlec leaves the field to be replaced by Eren Derdiyok.70:16
Simon Rolfes concedes a free kick for a foul on Ramires.69:42
Free kick awarded for an unfair challenge on Florent Malouda by Gonzalo Castro. Florent Malouda takes the free kick.69:34
The referee blows for offside against Stefan Kiessling. Petr Cech takes the free kick.68:24
Inswinging corner taken by Gonzalo Castro from the left by-line, save made by Petr Cech.67:48 Substitution
Substitution Alex joins the action as a substitute, replacing David Luiz.67:37
The ball is crossed by Andre Schurrle, Branislav Ivanovic makes a clearance.64:47 Substitution
Substitution Florent Malouda on for Juan Mata.64:03
Foul by Lars Bender on Jose Bosingwa, free kick awarded. Free kick taken by Petr Cech.63:16
Free kick awarded for a foul by Ramires on Sidney Sam. Sidney Sam restarts play with the free kick.63:00
Daniel Sturridge takes a shot. Save made by Bernd Leno.62:49
A cross is delivered by Michael Ballack, clearance made by John Terry.61:23
Shot by Simon Rolfes from outside the box goes over the net.60:42
The ball is sent over by Gonzalo Castro, Stefan Kiessling takes a shot. Save by Petr Cech.60:30
The ball is swung over by Andre Schurrle, clearance by John Terry.59:25
Juan Mata challenges Manuel Friedrich unfairly and gives away a free kick. Free kick taken by Lars Bender.58:22
Inswinging corner taken by Gonzalo Castro, Petr Cech makes a save.58:06
Michael Ballack takes a shot. Save by Petr Cech.57:51
Corner taken right-footed by Gonzalo Castro.57:37
Michael Ballack takes a shot. Save made by Petr Cech.56:17 Substitution
Substitution (Bayer Leverkusen) makes a substitution, with Andre Schurrle coming on for Daniel Schwaab.54:31 Booking
Booking The referee books Branislav Ivanovic for unsporting behaviour.53:33
The offside flag is raised against Didier Drogba. Indirect free kick taken by Bernd Leno.52:02
Branislav Ivanovic has an effort at goal. Save by Bernd Leno.50:55
Inswinging corner taken left-footed by Michal Kadlec played to the near post, clearance made by Raul Meireles.50:20
Corner taken right-footed by Gonzalo Castro to the near post, clearance by Raul Meireles.50:11
A cross is delivered by Michael Ballack.49:43
Frank Lampard takes a shot. Save by Bernd Leno.47:56
Assist on the goal came from Daniel Sturridge.47:56 Goal scored
Goal! - Didier Drogba - B Leverk'n 0 - 1 Chelsea Didier Drogba grabs a goal from deep inside the penalty box to the bottom left corner of the goal. Bayer Leverkusen 0-1 Chelsea.45:01
The second half begins.45:00 +1:12 Half time
Half Time The whistle is blown to end the first half.45:00 +0:40
Gonzalo Castro takes a outswinging corner.44:22
The ball is delivered by Didier Drogba, save by Bernd Leno.43:20 Booking
Booking Michael Ballack goes into the book.42:44
Daniel Sturridge takes the chance to get an effort at goal. Save by Bernd Leno.42:07
Effort from 12 yards by Juan Mata. Save made by Bernd Leno.39:26
The free kick is delivered left-footed by Juan Mata from right channel, save by Bernd Leno.39:26 Booking
Booking Booking for Michal Kadlec for unsporting behaviour.39:17
Handball by Michal Kadlec.37:53
Effort on goal by Didier Drogba from deep inside the penalty area misses to the right of the target.37:14
Michael Ballack gives away a free kick for an unfair challenge on Raul Meireles. Direct free kick taken by John Terry.35:56
Direct free kick taken by Jose Bosingwa.35:56 Booking
Booking Stefan Kiessling is given a yellow card.35:43
Jose Bosingwa fouled by Daniel Schwaab, the ref awards a free kick.32:56
Raul Meireles fouled by Michael Ballack, the ref awards a free kick. Direct free kick taken by Raul Meireles.32:43
Free kick awarded for a foul by Manuel Friedrich on David Luiz. Petr Cech restarts play with the free kick.31:48
Gonzalo Castro crosses the ball, Jose Bosingwa gets a block in. Outswinging corner taken right-footed by Gonzalo Castro played to the near post, Michael Ballack takes a shot.28:53
Free kick awarded for a foul by Omar Toprak on Daniel Sturridge. Didier Drogba produces a shot on goal direct from the free kick, Bernd Leno makes a comfortable save.28:26
The ball is crossed by Michael Ballack.27:37
Corner taken by Gonzalo Castro, clearance made by David Luiz.23:51
Foul by Simon Rolfes on Ramires, free kick awarded. Juan Mata restarts play with the free kick. Long range effort by Frank Lampard goes over the target.23:23
Free kick awarded for an unfair challenge on Daniel Sturridge by Michal Kadlec. Branislav Ivanovic takes the direct free kick.23:01
Ramires fouled by Michael Ballack, the ref awards a free kick. Ramires takes the direct free kick.21:24
Free kick awarded for a foul by Raul Meireles on Michael Ballack. Direct free kick taken by Omar Toprak.20:29
The ball is delivered by Daniel Schwaab.16:06
Foul by Stefan Kiessling on David Luiz, free kick awarded. Petr Cech takes the direct free kick.12:23
Daniel Sturridge crosses the ball, Bernd Leno makes a save.6:05
Michael Ballack delivers the ball, John Terry makes a clearance.4:59
Didier Drogba has an effort at goal from just inside the box that misses to the right of the target.4:21
Centre by Simon Rolfes, save made by Petr Cech.4:04
Sidney Sam sends in a cross, clearance made by David Luiz.3:03
Free kick awarded for a foul by John Terry on Stefan Kiessling. Lars Bender restarts play with the free kick.2:21
Michal Kadlec delivers the ball.0:42
Raul Meireles fouled by Stefan Kiessling, the ref awards a free kick. Direct free kick taken by John Terry.0:00
The match has kicked off.
Live data and text provided by our data suppliers