Goals in each half from Willian and Carlos Vinicius secured Fulham's first win over Chelsea since March 2006 on a miserable night for the Blues, who had their new signing Joao Felix sent off on his debut.
Applause rang out from all sides of Craven Cottage prior to kick-off as players and fans from both clubs paid tribute following the recent passing of Chelsea legend Gianluca Vialli.
Fulham broke the deadlock on 25 minutes with Willian's deflected low drive.
He became the 26th player to score against Chelsea in the Premier League after previously playing for them, the most by any side in the competition.
Felix, who joined on loan from Atletico Madrid on Wednesday, initially impressed, producing five of Chelsea's 14 shots in the first half. But he found goalkeeper Bernd Leno in superb form.
Kalidou Koulibaly's close-range finish pulled Chelsea level on 47 minutes but hopes of pushing on for a morale-boosting win were quickly thwarted.
Denis Zakaria became the 11th addition to Chelsea's injury list as he hobbled off, and was followed soon after by Joao Felix, who must now serve a three-match ban following his red card for a foul on Kenny Tete.
Vinicius, starting in place of Fulham's suspended top scorer Aleksandar Mitrovic, compounded Chelsea's misery 17 minutes from time, heading home Andreas Pereira's superb cross for his first goal for the club.
After winning four consecutive top-flight matches for the first time since 1966, Fulham are up to sixth place on 31 points.
Chelsea sit in 10th spot with 25 points following a fifth Premier League defeat in seven matches - their worst run since January 2011.
Aston Villa host Leeds United as Matchweek 20 gets under way in less than 24 hours.
Leeds will look to extend their unbeaten run at Villa Park to four matches, having won two and drawn one of their previous three encounters.
A win for Villa, unbeaten in the Premier League in 2023, could move Unai Emery's side in to the top half of the table.