Bryan Mbeumo scored twice for Brentford as they won the west London derby at Craven Cottage, where Fulham defender Tim Ream was sent off.
Yoane Wissa scored late in the first half after a mistake by Issa Diop, and Mbeumo converted a second-half penalty after Ream was adjudged to have fouled him – and was dismissed for a second yellow card.
Mbeumo netted again in injury time after being set up perfectly by Rico Henry’s cross.
It was a day to remember for Brentford and a miserable one for the Whites, with Diop’s error proving costly.
Diop’s awful attempted back-pass put Wissa through on goal and he rounded keeper Bernd Leno before slotting into an empty net.
Bobby De Cordova-Reid almost equalised when he fired against the bar, but there was no way back for Fulham after Ream’s sending-off and the second goal.
Fulham (4-3-3): Leno; Tete (Muniz 86), Diop, Ream, Robinson; Reed (Bassey 68), Pereira (Willian 68), Lukic; Jimenez (Traore 86), Wilson, De Cordova-Reid (Palhinha 68)
Subs not used: Rodak, Cairney, Mbabu, Vinicius
Brentford (4-3-3): Raya; Hickey (Roerslev 78), Collins, Pinnock, Henry; Norgaard (Damsgaard 78), Jensen, Janelt; Mbeumo, Schade (Lewis-Potter 71), Wissa (Dasilva 78 (Ajer 89))
Subs not used: Strakosha, Zanka, Onyeka, Yarmolyuk