Patrick Bamford scored one and set up the other goal as Leeds beat Fulham in a frantic game at Craven Cottage.
The hosts missed the chance to move out of the Premier League relegation zone with a third defeat in four games.
Leeds had two goals disallowed in the first half – first when Luke Ayling’s header was ruled out by the video assistant referee and then when Raphinha was well offside before slotting home.
They led when Bamford, who missed out on selection for the England squad on Thursday, smashed home at the near post from Jack Harrison’s cross.
Fulham were level when defender Joachim Andersen volleyed in from Ademola Lookman’s corner, his first goal in English football.
But Leeds scored the winner just before the hour mark, as Bamford fed Raphinha, who beat two defenders before poking home.
The result takes Marcelo Bielsa’s Leeds up to 11th in the table on 39 points.
Bamford helps Leeds ease scoring problems
Bamford, 27, had only scored one Premier League goal before this season. Two years ago, while in the Championship with Leeds, he looked close to declaring for the Republic of Ireland.
But he has scored 14 top-flight goals this season now – Harry Kane is the only English striker to score more.
England boss Gareth Southgate said Bamford was “very close” to his squad for the upcoming World Cup qualifiers.
Former England defender Matt Upson, watching the game for BBC Radio 5 Live, said he was unlucky not to be in the squad.
“He’s shown he’s at a good level. He’s pushing and in real contention,” said Upson.
He was ultimately the difference between the teams in a high-tempo encounter.
Leeds had failed to score in four of their previous five games, as many as in their first 23 league games this season.
But, after two team-mates had goals ruled out for offside, Bamford gave them the lead as he showed good movement to lose a defender before hammering in Harrison’s cross.
Fulham created plenty of chances after equalising but Bamford kept his cool to feed Raphinha for a cleverly finished winner.
In an eventful game, he was booked for a foul, went close to an own goal and avoided a penalty shout for a handball after a ricochet in the box.
There was a bit of a downside to Leeds’ night as Bamford, who had been a doubt with a hip injury, hobbled off after 77 minutes.
Fulham miss big chance in relegation fight
The Cottagers appeared doomed early in the season but a recent revival gave them the opportunity to move out of the relegation zone for the first time since December.
They had several chances, most notably in the first half, and could only take one of them when Andersen smashed home.
The defeat keeps them two points below Newcastle and three off Brighton. Those two sides play on Saturday and will still have a game in hand on Fulham.
This third defeat in four games means the momentum of their previous five-game unbeaten run may have gone.
Ivan Cavaleiro had a shot blocked in the opening 15 seconds to set the tone for a high-energy game.
Josh Maja was denied by a sensational Illan Meslier save, with Ayling clearing the loose ball off the line.
The keeper then denied Cavaleiro from getting on to a poor header back and saved a Andre-Frank Zambo Anguissa strike moments later.
Aleksandar Mitrovic replaced Maja at half-time and had to wait until the 89th minute for an effort on target, a header which Meslier saved.
More to follow.
- 34AinaSubstituted forTeteat 72′minutes
- 21ReedSubstituted forLoftus-Cheekat 63′minutesBooked at 90mins
- 18LeminaBooked at 51mins
- 29Zambo Anguissa
- 27MajaSubstituted forMitrovicat 45′minutes
- 23PhillipsBooked at 90mins
- 11RobertsSubstituted forKochat 90+3′minutes
- 9BamfordBooked at 31minsSubstituted forKlichat 77′minutes
- 17Hélder Costa
Match ends, Fulham 1, Leeds United 2.
Second Half ends, Fulham 1, Leeds United 2.
Attempt saved. Ademola Lookman (Fulham) header from the left side of the box is saved in the centre of the goal. Assisted by Joachim Andersen.
Offside, Fulham. Tosin Adarabioyo tries a through ball, but Ademola Lookman is caught offside.
Kalvin Phillips (Leeds United) is shown the yellow card.
Foul by Mateusz Klich (Leeds United).
Antonee Robinson (Fulham) wins a free kick in the defensive half.
Substitution, Leeds United. Robin Koch replaces Tyler Roberts.
Ruben Loftus-Cheek (Fulham) is shown the yellow card for a bad foul.
Raphinha (Leeds United) wins a free kick in the defensive half.
Foul by Ruben Loftus-Cheek (Fulham).
Attempt missed. Ivan Cavaleiro (Fulham) left footed shot from very close range misses to the right following a corner.
Attempt missed. André-Frank Zambo Anguissa (Fulham) header from the left side of the six yard box is close, but misses to the right. Assisted by Ademola Lookman with a cross following a corner.
Corner, Fulham. Conceded by Stuart Dallas.
Offside, Leeds United. Tyler Roberts tries a through ball, but Raphinha is caught offside.
Attempt saved. Aleksandar Mitrovic (Fulham) header from the right side of the box is saved in the centre of the goal. Assisted by Ademola Lookman.
Foul by Diego Llorente (Leeds United).
Aleksandar Mitrovic (Fulham) wins a free kick in the attacking half.
Attempt missed. Kalvin Phillips (Leeds United) right footed shot from outside the box misses to the left. Assisted by Raphinha with a cross following a corner.
Corner, Leeds United. Conceded by Alphonse Areola.