Clint Dempsey's late goal earned Fulham a deserved 1-1 draw in the west London derby against Chelsea.
The United States international rose highest to nod home Damien Duff's corner in the 82nd minute when defeat seemed to be on the cards.
Fulham dominated first-half proceedings at Craven Cottage but went in at the break behind after Frank Lampard's controversial 45th-minute penalty.
Referee Mark Clattenburg initially looked to have penalised a two-footed tackle from Danny Murphy on Salomon Kalou but it was actually awarded for a much less clear challenge by Stephen Kelly.
It was the third match in six days Chelsea had been at the centre of controversial officiating but there was no victory this time as they failed to win a London derby for the fifth time this season and ended the day in sixth place.
The importance of tonight's match was demonstrated by caretaker manager Roberto Di Matteo's decision to recall captain John Terry, despite admitting on Friday the defender was at risk of further damaging his cracked ribs every time he took to the field.
It took less than six minutes for them to be tested in an aerial challenge with Dempsey in driving rain at Craven Cottage.
The conditions made for a safety first approach from both sides, who tried to keep the ball and get their full-backs forward.
That led to a succession of unprofitable corners, with Chelsea missing the craft of the rested Juan Mata.
They did fashion the first decent move of the match, which ended when Brede Hangeland blocked Fernando Torres' finish behind.
Otherwise, Fulham provided the greater threat and Raul Meireles escaped with a warning for a cynical trip on Kerim Frei - one he failed to heed when he was booked for bringing down John Arne Riise midway through the half.
It was no surprise to see the first real chance fall to the home side, and top scorer Dempsey, after 25 minutes.
The American released Mousa Dembele down the left but could only poke the forward's return pass straight at Petr Cech from eight yards.
The recalled Frei provided a much sterner test with a skidding 25-yard shot which the goalkeeper palmed wide.
There were shouts for a penalty against Kelly when he hurt his wrist after being hit by a Ryan Bertrand cross before Cahill was cautioned for upending Mahamadou Diarra.
But Chelsea took the lead on the stroke of half-time thanks to what initially looked a clear-cut decision from Clattenburg.
The only surprise at the time was that Murphy was not shown a card of some description before Lampard's spot-kick flashed past the dive of Mark Schwarzer.
Lampard drilled narrowly wide from 25 yards soon after the restart and was appealing for another penalty when he went down under Hangeland's challenge trying to convert a cross.
Chelsea were in total control and Meireles should have done better than blaze over after another slick move.
John Obi Mikel was booked for bringing down Frei, whose pass Riise was inches from bending in with the outside of his foot.
Murphy's name was taken for taking out Lampard in full flight and Kalou was just beaten to an inviting cross by Hangeland.
But Fulham were now in charge and Di Matteo sent on Mata for Meireles with 20 minutes remaining, with Fulham soon responding by withdrawing Murphy for Dickson Etuhu.
More changes followed but the home side continued to dominate and deservedly equalised eight minutes from time.
Cech had just produced one of the saves of the season to repel Dempsey's point-blank header from Duff's corner but he was helpless from the resulting delivery, Dempsey's header - which may have been going wide - glancing off Cahill and past the unsighted keeper.
Fulham were all over Chelsea and substitute Orlando Sa nodded another corner too close to Cech.
Chelsea won a flurry of corners of their own in the dying moments but could not snatch another late winner.