Fulham condemned Cardiff City to their first Championship home defeat of the season on a rainy Boxing Day.
Tim ream gave the visitors an early lead and Floyd Ayite doubled the advantage before Kenneth Zohore pulled one back almost immediately, only for Ryan Sessegnon to pop up with a seemingly decisive third.
Calum Paterson netted in injury time, and Fulham’s Stefan Johansen completed the scoring with seconds left.
The Bluebirds slip out of the top two, while Fulham continue to close the gap on the play-off pack, which now stands at just six points.
Fulham started the brighter and were denied a penalty when Johansen went down in the area.
Yet the opener came soon after as Ream headed home Ayité’s precise cross with 12 minutes played.
Fulham continued to control the game in difficult conditions, but had to wait until the second half to increase their lead.
Sessegnon worked some space on the left and Ayite beat his marker to turn the ball in.
Yet almost immediately, Zohore, starting his first game since October, produced a stunning volley out of nothing to give the Championship high-flyers hope of a comeback.
Sensing an equaliser the hosts pushed forward, but were ondone by a counter-attack as Sessegnon found space in the box to fire home.
Paterson’s injury-time header gave Neil Warnock’s team renewed belief that was cruelly ended by Johansen’s classy finish to give Fulham their third win in four games.