Michail Antonio’s 90th-minute winner left Leeds still searching for a first Premier League win of the season as they were beaten by West Ham at Elland Road.
In a match that saw 35 attempts on goal, Marcelo Bielsa’s side had the better chances in the first half but the visitors grew into the game as excitement turned to nerves among the home fans in a cagey encounter.
Raphinha had opened the scoring for Leeds on 19 minutes with a clinical low finish from outside the area.
West Ham thought they had equalised eight minutes into the second half, but Tomas Soucek’s effort was ruled out after referee Kevin Friend checked the pitchside monitor and spotted an Antonio foul on goalkeeper Illan Meslier.
The Hammers eventually found a way through when Jarrod Bowen’s shot from inside the box deflected off Junior Firpo and into the back of the net.
In the first minute of injury time, Leeds were caught out on the counter-attack as Antonio knocked the ball past defender Jamie Shackleton before sliding in the winner to push the hosts into the bottom three.
This is only the second time in Leeds’ history that they have failed to win any of their first six games of a top-flight campaign – it last happened in 1935-36.
Antonio back with a bang
After serving a one-match suspension and missing last weekend’s defeat by Manchester United, Antonio returned to show West Ham what they had been missing.
Before Saturday’s game, he was on a run of nine games against Leeds without a goal. He had not faced any opponent more often without scoring.
And it looked like being another frustrating afternoon for the Hammers’ Premier League top scorer with only three shots on target as Leeds goalkeeper Meslier pulled off a string of saves to deny him.
There was further anguish when Soucek’s equaliser was ruled out after VAR showed Antonio had clattered Meslier in the face with his arm in the build-up.
There was a lengthy stoppage with the Leeds keeper requiring treatment and a change of shirt, and it seemed to spark a shift in momentum as the Hammers went on to dominate.
After a slice of luck for their first goal – Bowen’s shot deflecting off Liam Cooper on to Junior Firpo’s backside and past Meslier – David Moyes’ side had a number of more orthodox chances to score a second.
Aaron Cresswell and Said Benrahma came close, but it was Antonio who eventually came up with the goods after some brilliant work from Declan Rice.
The England international picked up the ball inside his own half before knocking it inside to Antonio, who took a touch past his man and stroked it into the bottom corner for his fifth league goal of the season.
Defeat sees Leeds drop to 18th in the table with three points from their opening six games, one of five Premier League sides still searching for a win.
- How Antonio’s drive took him from non-league to Premier League
- Reaction to Leeds United v West Ham, plus all the rest of Saturday’s Premier League matches
- Visit the Leeds page
- Visit the West Ham page
Player of the match
with an average of 7.52
Squad number1Player nameMeslier
Squad number10Player nameRaphinha
Squad number35Player nameCresswell
Squad number19Player nameRodrigo
Squad number43Player nameKlich
Squad number46Player nameShackleton
Squad number15Player nameDallas
Squad number23Player namePhillips
Squad number20Player nameJames
Squad number6Player nameCooper
Squad number22Player nameHarrison
Squad number3Player nameFirpo
Squad number38Player nameSummerville
Squad number11Player nameRoberts
West Ham United
Squad number9Player nameAntonio
Squad number22Player nameBenrahma
Squad number11Player nameVlasic
Squad number20Player nameBowen
Squad number41Player nameRice
Squad number15Player nameDawson
Squad number4Player nameZouma
Squad number28Player nameSoucek
Squad number8Player nameFornals
Squad number1Player nameFabianski
Squad number5Player nameCoufal
Squad number3Player nameCresswell
Squad number7Player nameYarmolenko
Squad number21Player nameOgbonna
- 1MeslierBooked at 70mins
- 46ShackletonSubstituted forSummervilleat 90+1′minutes
- 10RaphinhaBooked at 20minsSubstituted forRobertsat 69′minutesBooked at 81mins
- 20JamesSubstituted forHarrisonat 45′minutes
- 20BowenSubstituted forDawsonat 90+2′minutes
- 8FornalsBooked at 28minsSubstituted forVlasicat 78′minutes
- 9AntonioBooked at 55minsSubstituted forYarmolenkoat 90+7′minutes
- Kevin Friend
Match ends, Leeds United 1, West Ham United 2.
Second Half ends, Leeds United 1, West Ham United 2.
Offside, Leeds United. Stuart Dallas tries a through ball, but Charlie Cresswell is caught offside.
Substitution, West Ham United. Andriy Yarmolenko replaces Michail Antonio.
Attempt missed. Kalvin Phillips (Leeds United) right footed shot from outside the box misses to the left.
Substitution, West Ham United. Craig Dawson replaces Jarrod Bowen.
Substitution, Leeds United. Crysencio Summerville replaces Jamie Shackleton.
Goal! Leeds United 1, West Ham United 2. Michail Antonio (West Ham United) right footed shot from the centre of the box to the bottom right corner. Assisted by Declan Rice.
Hand ball by Saïd Benrahma (West Ham United).
Corner, West Ham United. Conceded by Jamie Shackleton.
Attempt blocked. Michail Antonio (West Ham United) right footed shot from the left side of the six yard box is blocked. Assisted by Saïd Benrahma.
Attempt saved. Rodrigo (Leeds United) left footed shot from the centre of the box is saved in the top centre of the goal. Assisted by Tyler Roberts.
Tyler Roberts (Leeds United) is shown the yellow card for a bad foul.
Foul by Tyler Roberts (Leeds United).
Aaron Cresswell (West Ham United) wins a free kick on the left wing.
Kalvin Phillips (Leeds United) wins a free kick in the defensive half.
Foul by Tomas Soucek (West Ham United).
Substitution, West Ham United. Nikola Vlasic replaces Pablo Fornals.
Attempt blocked. Michail Antonio (West Ham United) left footed shot from the centre of the box is blocked. Assisted by Saïd Benrahma.
Attempt missed. Saïd Benrahma (West Ham United) right footed shot from outside the box is high and wide to the left from a direct free kick.
- Our coverage of your Premier League club is bigger and better than ever before – follow your team and sign up for notifications in the BBC Sport app to make sure you never miss a moment