Fulham striker Bobby Zamora fired a 90th minute penalty to continue Blackburn’s freefall down the Barclays Premier League.
Zamora, who missed last weekend’s draw with Manchester City because of an ankle injury, stepped off the bench to drill home the winner after Grant Hanley had held back Aaron Hughes.
It was the England striker’s first Premier League appearance since recovering from a broken leg sustained in September.
Twice Damien Duff gave Fulham the lead with two sweetly-struck goals, lifting his tally for the season to five, but twice Blackburn struck back.
Hanley fired the first equaliser in first-half injury time with a shot that took a heavy deflection off the head of Brede Hangeland.
Then it was Junior Hoilett’s turn to reel in Fulham, capitalising on confusion in the home defence, before a late flurry from the home side saw the lead change hands for a final time.
Blackburn manager Steve Kean made six changes to the team thrashed 4-1 by Aston Villa and will be pleased by a spirited display.
But Rovers have now lost four of their last five league games and are hovering dangerously close to the relegation zone.
Fulham will argue that they should have been awarded a penalty shortly after Duff’s opener when Christopher Samba hacked down Andy Johnson, but referee Mark Clattenburg was unmoved.
It was a poor decision by Clattenburg, who drew heavy criticism for failing to show Manchester United striker Wayne Rooney a red card against Wigan last weekend.
Jason Roberts drew an early save from Mark Schwarzer but the acute angle meant the Australian keeper was hardly troubled.
Blackburn conceded a free-kick just outside the area when Samba shoved Clint Dempsey in the back, but Chris Baird blasted the set piece into the wall with Duff then blazing high.
Johnson almost reached a lovely ball from Dempsey and then tucked a Duff cross just outside the post as Fulham continued to press.
The Cottagers were more incisive in attack and their reward came in the 37th minute through Duff.
Dickson Etuhu slid the ball to Duff who raced into the area, thought about rounding Martin Olsson before slotting the ball between the winger’s legs.
Paul Robinson, his sight partially blocked by Olsson, dipped his hands to his right but the ball had already passed into the net.
Fulham were unlucky not to win a penalty moments later when Samba tripped Johnson without touching the ball, but Clattenburg was unconvinced.
The Cottagers’ good work was undone in first-half injury time, however, when Etuhu lost the ball to Hanley on the edge of his area.
Hanley took the ball forward and pulled the trigger with his shot deflecting off Hangeland, inside Schwarzer and into the net.
Samba almost turned the ball into his own net as the second half got under way before Baird was forced to scramble a cross to safety.
A series of hair-raising moments in the Blackburn area saw Fulham subdued by some desperate defending, the pick of which resulted in Dempsey being denied from close range.
A second Fulham goal seemed inevitable and it arrived in the 59th minute when Duff struck once again.
Moussa Dembele and Johnson exchanged passes before the ball was slipped to Duff who powered his shot between the legs of Samba from the edge of the area.
But once more their lead was shortlived as poor defending in the 66th minute that saw the ball bounce around the left post allowed an unmarked Hoilett to power home.
Blackburn were now on top and it was Fulham who were having to scramble to clear their lines.
Jermaine Jones was gifted time to shoot by the home defence but his effort still sailed wide.
But the last 10 minutes belonged to Fulham with a poor first touch from Duff squandering good work from Zamora.
Robinson made a fine save from Johnson before the Cottagers’ pressure told with a minute to go.
Hanley held back Hughes at a corner and Clattenburg pointed to the spot where Zamora rifled home the winner.