Match ends, Fulham 0, West Ham United 2.
Fulham 0-2 West Ham: Hammers win again to keep hosts bottom of league
West Ham earned a fourth consecutive Premier League win for the first time in almost five years to keep toothless Fulham bottom of the table.
The Cottagers, who have not kept a clean sheet all season, wasted several chances in the first half while falling asleep to let the Hammers take the lead with their first two shots.
Robert Snodgrass curled the visitors into the lead from Felipe Anderson's pass, and Michail Antonio was left unmarked to double the advantage.
Anderson almost scored late on with the second half's only shot on target, but his effort was saved by Sergio Rico.
Fulham - who created very little after the break - have won once in Claudio Ranieri's five games in charge so far.
Damaging defeat leaves Fulham looking to January transfer window
Fulham's problem this season has been leaking goals - they are the only team in England's top four divisions to not keep a single clean sheet.
But their issues at Craven Cottage on Saturday were as much to do with their finishing.
Fulham had 12 shots in the first half to West Ham's two, excluding blocked efforts.
Aboubakar Kamara wasted the best chance when his one-on-one effort was saved by Lukasz Fabianski. The striker had a header and a long-range effort stopped, while the keeper also kept out Aleksandar Mitrovic's 20-yard deflected strike.
Jean Michael Seri, Andre Schurrle and Tom Cairney all missed the target with shots from outside the box.
They could have stopped Anderson in the build-up - or closed down Snodgrass - to the opening goal and nobody picked up Antonio for the second.
Ranieri said "of course" the goals were avoidable, adding: "They scored very easily twice. A counter-attack, we have to stay calm and we run to get the ball and that's not right."
Their luck appeared to be summed up when Denis Odoi and Alfie Mawson injured themselves while trying to stop Anderson, although they could both continue after treatment.
Fulham never looked like threatening any kind of comeback in the second half, and did not force any saves from the West Ham keeper.
They had won once in Ranieri's first four games - his opening match against Southampton. But that run included games at Chelsea and Manchester United - with two of the previous three defeats at Manchester City and Liverpool.
However, three of their four games before the new year - including this one - are at home, with none against the Premier League's elite clubs.
Despite conceding 42 goals in 17 Premier League games, Fulham remain only three points adrift of safety.
Having spent £100m in the summer following promotion to get them ready for the Premier League, they are likely to be able to afford more spending in January.
And, on the basis of the season so far, they could do with significant reinforcements throughout the team.
Ranieri said after the game that it was "too early to speak about" January transfers - but added owner Shahid Khan "understands we have to do something".
West Ham maintain impressive form
The Hammers, under Manuel Pellegrini, appear to have found their feet after a shaky run of form and are suddenly dreaming of Europe.
They had won their previous three matches, scoring three times in each, and are up to ninth in the league - two points off sixth-placed Manchester United - after their latest victory.
They were highly clinical at Craven Cottage, with Snodgrass scoring a brilliant opener and Javier Hernandez flicking on Anderson's cross to find Antonio free to double their lead.
United only had one more effort on target - Anderson's late chance - and they were relatively comfortable winners as the second half proved a non-event.
They are now enjoying their best run since February 2014, when they won all four Premier League games under Sam Allardyce.
"That was a good performance because maybe we didn't create many chances, but the ones we did create, we scored," Pellegrini told BBC Match of the Day. "In the second half we did well. We kept a clean sheet.
"We have eight players injured. We will see what will happen in January, but I'm very happy with the squad. We have four or five players who might not play again this season.
"Four games in a row is not easy for any team. Now we must try to continue with our feet on the floor. We will continue working. We are two points behind the European spots but there are 21 games left."
Match stats - Hernandez's first Premier League assist in four years
- Fulham have not kept a clean sheet in any of their last 21 Premier League games, conceding at least twice in 18 of those games (53 goals in total).
- West Ham have won more Premier League London derbies this season (two) than they did in the whole of 2017-18 (one).
- Snodgrass has been directly involved in five goals in his last four Premier League games (two goals, three assists), after previously going 16 games without a goal or assist in the competition.
- Anderson has been involved in more Premier League goals this season than any other West Ham player (eight - six goals, two assists).
- Hernandez got his first assist in the Premier League since April 2014, when he set up Juan Mata for Manchester United against Newcastle.
Man of the match - Felipe Anderson (West Ham)
West Ham are at home to Watford next Saturday (15:00 GMT), looking to make it five wins in a row.
Fulham visit Newcastle at the same time as they continue their search for a first Premier League clean sheet since April 2014.
- 13ReamSubstituted forChristieat 45'minutes
- 24SeriBooked at 41minsSubstituted forJohansenat 61'minutesBooked at 90mins
- 14SchürrleSubstituted forKebanoat 77'minutes
- 16NobleBooked at 39minsSubstituted forObiangat 62'minutes
- 8Felipe Anderson
- 30AntonioSubstituted forDianganaat 85'minutes
- 17HernándezSubstituted forCarrollat 73'minutes
- 32Costa Silva
- Mike Dean
- Shots on Target
Second Half ends, Fulham 0, West Ham United 2.
Corner, Fulham. Conceded by Grady Diangana.
Offside, Fulham. Cyrus Christie tries a through ball, but Aboubakar Kamara is caught offside.
Stefan Johansen (Fulham) wins a free kick in the defensive half.
Foul by Pedro Obiang (West Ham United).
Stefan Johansen (Fulham) is shown the yellow card for a bad foul.
Foul by Stefan Johansen (Fulham).
Grady Diangana (West Ham United) wins a free kick in the attacking half.
Offside, Fulham. Stefan Johansen tries a through ball, but Aleksandar Mitrovic is caught offside.
Attempt saved. Felipe Anderson (West Ham United) right footed shot from the left side of the box is saved in the centre of the goal. Assisted by Grady Diangana.
Substitution, West Ham United. Grady Diangana replaces Michail Antonio.
Foul by Alfie Mawson (Fulham).
Andy Carroll (West Ham United) wins a free kick on the right wing.
Attempt missed. Fabián Balbuena (West Ham United) header from the centre of the box misses to the left. Assisted by Robert Snodgrass with a cross following a corner.
Corner, West Ham United. Conceded by Denis Odoi.
Attempt blocked. Tom Cairney (Fulham) left footed shot from outside the box is blocked.
Corner, Fulham. Conceded by Robert Snodgrass.
Substitution, Fulham. Neeskens Kebano replaces André Schürrle.
Alfie Mawson (Fulham) wins a free kick in the defensive half.
Foul by Andy Carroll (West Ham United).
Corner, West Ham United. Conceded by Calum Chambers.
Substitution, West Ham United. Andy Carroll replaces Chicharito.
Foul by Aboubakar Kamara (Fulham).
Robert Snodgrass (West Ham United) wins a free kick on the right wing.
Hand ball by Pablo Zabaleta (West Ham United).
Attempt missed. Felipe Anderson (West Ham United) header from the centre of the box is close, but misses to the right. Assisted by Pablo Zabaleta.
Corner, West Ham United. Conceded by Alfie Mawson.
Corner, Fulham. Conceded by Fabián Balbuena.
Foul by Cyrus Christie (Fulham).
Felipe Anderson (West Ham United) wins a free kick on the left wing.
Cyrus Christie (Fulham) wins a free kick on the right wing.
Foul by Arthur Masuaku (West Ham United).
Substitution, West Ham United. Pedro Obiang replaces Mark Noble because of an injury.
Substitution, Fulham. Stefan Johansen replaces Jean Michael Seri.
Attempt blocked. Aleksandar Mitrovic (Fulham) header from the centre of the box is blocked. Assisted by Jean Michael Seri with a cross.
Corner, Fulham. Conceded by Pablo Zabaleta.
Foul by André Schürrle (Fulham).
Issa Diop (West Ham United) wins a free kick in the defensive half.
Joe Bryan (Fulham) wins a free kick in the defensive half.