Joao Felix, who only joined Chelsea on Wednesday in a £9.7m loan deal until the end of the season from Atletico Madrid, was shown a straight red card for a horrible lunge on defender Kenny Tete after 58 minutes.
It was 1-1 at the time, with Willian putting the hosts ahead against his former side in the first half, before Kalidou Koulibaly equalised early in the second.
But the 10 men of Chelsea could not hang on to a point as Carlos Vinicius headed in a 72nd-minute winner.
Potter’s Blues side started brightly, but the hosts nearly took the lead when Chelsea lost possession and Carlos Vinicius played a pass through to Bobby de Cordova-Reid, who fired against the crossbar with Kepa Arrizabalaga beaten.
But Chelsea fell behind two minutes later in the 25th minute.
It was poor defending from the visitors as teenage left-back Lewis Hall failed to clear, before Trevoh Chalobah should have done better with his clearance.
The ball fell to Willian and the Brazil midfielder, a two-time Premier League winner during a seven-year spell at Chelsea, saw his strike take a big deflection off Chalobah to give Arrizabalaga no chance. Willian did not celebrate against his former team.
But Chelsea equalised within two minutes of the second half as Koulibaly reacted quickest to force the ball over the line from close range after Mason Mount’s free-kick had bounced off the left-hand post.
Joao Felix had been the visitors’ best player before his dismissal left his side on the back foot, with Vinicius scoring the winner.
Chelsea have now only won twice in 10 matches in all competitions with Joao Felix set to be suspended for three games.
There was a party atmosphere among the home fans at Craven Cottage at the final whistle.
This was only Fulham’s fourth win in 53 top-flight matches against Chelsea, and ended a run of 20 Premier League games without a win against the Blues since a 1-0 victory in March 2006.
Fulham now move up to sixth in the Premier League, although they have played two more games than Liverpool, the side they have moved above.
Nevertheless, this result still continues an incredible season for Marco Silva’s Fulham, who won promotion from the Championship earlier this season.
In the build-up to this match, club captain Tom Cairney said the players were not “thinking at all” about the possibility of qualifying for Europe next season, but the Fulham fans will be starting to dream of what could happen in the rest of the campaign.
What made this result even more special for Silva was the fact he was without 11-goal top scorer Aleksandar Mitrovic, but Vinicius proved to be an able deputy and his goal sent the Fulham fans home happy.
For Chelsea, European football is already looking a long way off. They have just 25 points from their opening 18 Premier League games this season, their fewest at this stage since 2015-16, the only season since 1996-97 when they have failed to qualify for Europe.