Brede Hangeland headed a 94th-minute equaliser to deny Aston Villa their first league win since September.
The Fulham defender rose highest to nod in Danny Murphy’s free-kick and make Villa pay for not killing the game off.
Marc Albrighton put the visitors ahead with their first league goal for 385 minutes when he slotted home.
Nathan Delfouneso missed a hat-trick of chances and Ashley Young went close before Villa were punished for their profligacy by Hangeland’s late goal.
The visitors will be desperately disappointed not to have won the game but only had themselves to blame for failing to put the result beyond doubt.
They went into the match well aware that their goals record left a lot to be desired and the absence of Emile Heskey, John Carew and Gabriel Agbonlahor put extra pressure on their less experienced replacements.
But after Albrighton had finally ended their goal drought, they really should have gone on to score more although Fulham deserved credit for a never-say-die attitude which brought them a last-gasp reward.
At the outset, Villa served notice of their intent when Stewart Downing sped clear on a breakaway, only to be denied by a last-ditch block from Carlos Salcido.
And although Zoltan Gera headed a Fulham chance straight at Brad Friedel, Villa continued to press, with Delfouneso nodding wide after being picked out by a fine ball from Albrighton.
The Cottagers hit back and went close when Gera dragged a shot past the upright and the Hungarian also smashed a rebound over the bar after Clint Dempsey’s effort had been well kept out by Friedel.
Villa lost skipper Nigel Reo-Coker to injury, but started to take charge as they provided greater support for Delfouneso and his lay-off allowed Barry Bannan to take a snap shot, which the home side’s goalkeeper Mark Schwarzer dealt with comfortably.
Fulham striker Moussa Dembele volleyed over from 12 yards before Delfouneso headed a clear chance over the bar after Luke Young’s low shot rebounded up off Schwarzer.
But moments later Bannan found Albrighton with a long cross-field pass and the midfielder’s exquisite first touch put him through on goal and he finished with aplomb.
After the break, Villa tightened up considerably in the midfield and denied the Cottagers any time and space to pick their passes, while remaining dangerous on the counter.
Delfouneso should have doubled the lead when clean through on goal but he scuffed his shot and handed Schwarzer an easy save.
FULHAM (4-4-1-1): Schwarzer; Baird (Kelly 58), Salcido (Duff 69), Hughes, Hangeland; Greening (A. Johnson 59), Davies, Gera; Dempsey; Dembele. Subs (not used): Stockdale, Pantsil, Etuhu, E. Johnson.
GOAL: Hangeland (90+5).
ASTON VILLA (4-5-1): Friedel; L. Young, Warnock, Dunne, Collins; Reo-Coker (Clark 33), Bannan, Young, Albrighton, Downing; Delfouneso (Ireland 89). Subs (not used): Guzan, Cuellar, Lichaj, Sidwell, Hogg.
GOAL: Albrighton (41).
REFEREE: Peter Walton (Northamptonshire).
Perhaps sensing the game was slipping away from Fulham, manager Mark Hughes brought on striker Andrew Johnson, and he might have levelled he went through one-on-one with Friedel but the ball appeared to stick between his feet and the on-rushing keeper was able to block.
Ashley Young was next to miss for Villa when he was unable to convert a diving header but it looked like their single goal might be enough until Murphy’s injury-time free-kick from the left was met by Hangeland, who nodded downward into the bottom corner to earn Fulham what had looked like an unlikely point.