Match ends, Fulham 2, Cardiff City 1.
Emerson Hyndman scored a stoppage-time winner on his 20th birthday as Fulham came back to inflict a significant blow to Cardiff City's play-off hopes.
Lex Immers' header gave Cardiff the lead but Scott Parker's first goal of the season brought the Cottagers level.
Hyndman scored from close range to secure victory for Fulham, who move 10 points clear of the relegation zone.
Cardiff are five points adrift of the Championship play-off places with five games remaining.
Russell Slade's side failed to capitalise on play-off rivals Sheffield Wednesday's 4-1 defeat at Bristol City.
Both sides had chances during an open first half, with Aron Gunnarsson's header saved by Marcus Bettinelli and Bruno Ecuele Manga heading over from Peter Whittingham's corner.
At the other end David Marshall parried fellow Scottish international and former Cardiff striker Ross McCormack's free-kick.
Cardiff went ahead when Scott Malone combined down the left with Gunnarsson, whose cross was met by Immers to head home his fifth goal of the season.
Fulham levelled in the opening minute of the second half when Cardiff's defence were caught cold as Moussa Dembele set up former England midfielder Parker, who fired home from a tight angle.
Gunnarsson and Sean Morrison squandered chances for Cardiff, who were less effective in the second half.
Dembele was denied by Marshall and McCormack's shot was deflected onto the bar as the home side chased a later winner.
They were rewarded in stoppage time when United States international Hyndman struck from close range following a scramble at a corner.
Fulham boss Slavisa Jokanovic:
"We didn't play a good football game in the first 45 minutes. That could be my mistake. Maybe my message was a bit confused. The second half was a game we want to play.
"Today is Emerson Hyndman's birthday. It's a great present for himself and for all of us in the last moment of the game. He's probably one of the more talented players.
"I am little bit disappointed with myself that I haven't found more minutes for him this season. He probably needs to be a little bit stronger for the Championship. But he will be a very good footballer for us.
"We've had one perfect week where we've won three games but in front of us is five games more. Mathematically, we are 10 points ahead. It's 15 points needed, so we need five points more to be 100 per cent sure."
Cardiff City manager Russell Slade:
"We will keep going to the end. It's a setback and we would have taken a precious point. We've given ourselves a mountain to climb but there's still time to go.
"A draw would have been a fair result. We took a few risks to get the three points and when you do that you leave yourself open a little bit. But they've scored as a result of a corner that we've not defended well enough.
"It's very frustrating that we've not been able to bridge that gap. We've had some real high level performances recently but where we want to be is certainly not impossible.
"We'll keep going. We've got a home game next week and all we can control is what's in front of us."
- 15MadlSubstituted forFredericksat 45'minutesBooked at 88mins
- 8ParkerSubstituted forBairdat 77'minutes
- 19TunnicliffeSubstituted forChristensenat 67'minutes
- 5Ecuele Manga
- 17GunnarssonSubstituted forSaadiat 82'minutes
- 37LawrenceSubstituted forZohoreat 65'minutes
- 3da Silva
- Jeremy Simpson
- Shots on Target
Second Half ends, Fulham 2, Cardiff City 1.
Attempt missed. Kenneth Zohore (Cardiff City) left footed shot from the centre of the box is too high. Assisted by Idriss Saadi.
Goal! Fulham 2, Cardiff City 1. Emerson Hyndman (Fulham) right footed shot from the right side of the six yard box to the bottom left corner. Assisted by Lasse Vigen Christensen following a corner.
Corner, Fulham. Conceded by Joe Ralls.
Attempt blocked. Ross McCormack (Fulham) left footed shot from outside the box is blocked. Assisted by Moussa Dembele.
Attempt saved. Moussa Dembele (Fulham) left footed shot from the right side of the box is saved in the centre of the goal. Assisted by Emerson Hyndman.
Attempt missed. Sean Morrison (Cardiff City) header from the centre of the box is close, but misses to the right. Assisted by Peter Whittingham with a cross following a corner.
Corner, Cardiff City. Conceded by Ryan Fredericks.
Ryan Fredericks (Fulham) is shown the yellow card for a bad foul.
Idriss Saadi (Cardiff City) wins a free kick in the attacking half.
Foul by Ryan Fredericks (Fulham).
Corner, Fulham. Conceded by Lee Peltier.
Corner, Cardiff City. Conceded by Richard Stearman.
Attempt blocked. Kenneth Zohore (Cardiff City) left footed shot from the left side of the box is blocked. Assisted by Scott Malone.
Foul by Kenneth Zohore (Cardiff City).
Fernando Amorebieta (Fulham) wins a free kick in the defensive half.
Substitution, Cardiff City. Idriss Saadi replaces Aron Gunnarsson.
Attempt missed. Scott Malone (Cardiff City) header from the centre of the box misses to the right. Assisted by Joe Ralls.
Corner, Fulham. Conceded by Bruno Ecuele Manga.