Substitute Harry Wilson stunned Brentford with two injury-time goals as Fulham came from behind to snatch the points at Craven Cottage.
Brentford's Vitaly Janelt had earlier scored a superb opener worthy of winning any match, powering his shot in from 25 yards in the first half.
But Wilson came on with eight minutes remaining and acrobatically flicked the ball with the outside of his boot over goalkeeper Mark Flekken to score his first, before stooping low to head in the shock winner in the 97th minute.
Fulham had deserved something from the game for their performance, starting strongly to peg back the Bees, who have become renowned for being quick out of the blocks this season.
Cottagers winger Reiss Nelson, named in the starting XI for the first time in the Premier League, had two shots saved by Flekken in quick succession before Emile Smith Rowe also tested the keeper.
Brentford were struggling for posession, before Christian Norgaard rolled the ball to Janelt outside the box and the midfielder smashed the ball low into the corner to give the away team the lead with their first shot.
The match fell into the same pattern in the second half, with Fulham pinning Brentford back before the late drama.
Alex Iwobi, Kenny Tete and Andreas Pereira all had efforts on goal but the hosts could not find a breakthrough before Wilson looped the ball over Flekken from Adama Traore's cross.
With time running out Antonee Robinson clipped in a cross and Wilson stooped down and headed the ball high into the net, sparking wild scenes around the stadium.
Coming into this match Brentford had dropped more points from winning positions than any team in the league, and that tendency repeated itself in brutal fashion as they left Craven Cottage empty handed.
Fulham had not lost any of their previous five London derbies but it looked as though that record was about to be ended before Wilson’s heroics.
It would be hard to argue that Fulham did not deserve the win as they dominated possession with 26 shots to the Bees' five.
The frustration around the stadium was building as a resolute Brentford side looked like they were going to pull off a smash-and-grab win.
Midfielder Pereira had created the most chances of any player in the Premier League coming into this match but it was after he left the field that Fulham looked the most likely to score.
Marco Silva threw on Traore, match-winner Wilson and Rodrigo Muniz as the home side chased a way back into the match.
Fulham had relentlessly put balls into the box and it was that tactic which paid off with Wilson getting on the end of two crosses to score late on with impressive finishes.
The win moves the Cottagers up to ninth place and in touch with the sides in the European places.
Brentford have failed to keep a clean sheet for 12 consecutive matches, with their last one ironically coming in a 0-0 draw with Fulham back in May.
The Bees were under pressure for large parts of the match and their backline had to deal with wave after wave of Fulham attacks.
Thomas Frank’s side have, despite being exciting to watch, shown defensive frailties and had conceded 10 goals in their previous four games.
Key players Bryan Mbeumo and Yoane Wissa could not get into the game and both were substituted on a frustrating night.
That's now 14 points lost from winning positions and Frank will be starting to wonder what his side have to do to see out a win.
Brentford, 12th in the league, have had a solid start to the season but will need to sort their defensive issues if they want to get higher than mid-table.