Tottenham suffered a first defeat in their new stadium thanks to Michail Antonio’s superb second-half strike for West Ham.
Third-placed Spurs had won all four of their games since moving into the Tottenham Hotspur Stadium in early April.
But Antonio’s goal in the 67th minute was the first Tottenham had conceded at home in that period, and means they are not yet certain of finishing in the top four in the Premier League.
West Ham’s Fabian Balbuena cleared a Vincent Janssen header off the line in stoppage time.
The win ended a run of four games without victory for West Ham, who remain 11th in the table with two games to play this season.
They finished strongly, with Antonio and defender Issa Diop forcing Tottenham goalkeeper Hugo Lloris into saves in the closing stages.
Spurs looked tired – they were playing their seventh match in April, and face one more when they entertain Ajax in Tuesday’s Champions League semi-final first leg.
Spurs lack spark
Spurs’ prolonged wait to play in their rebuilt home was worth the wait before West Ham’s visit, with three league wins and a 1-0 victory over Manchester City in the first leg of their epic Champions League quarter-final.
But there had been signs of strain when they struggled to overcome relegation-threatened Brighton in their previous match.
Manager Mauricio Pochettino made four changes to the side that played Brighton but, after a good start, his players appeared to run out of steam.
Son Heung-min’s low strike forced West Ham keeper Lucasz Fabianski into a save at his near post, while a Lucas Moura shot zipped across the face of goal before half-time.
Christian Eriksen also forced Fabianski into action, this time with his feet, but West Ham were happy to counter-attack from the outset.
They were the better side after the break, and the game was deep into stoppage time when substitute Janssen almost earned Spurs a point.
Rare road trip joy for Hammers
With just 16 points earned since their league campaign’s halfway point before this game, West Ham’s season was in danger of petering out.
Having earned only one point from their past eight away trips, the signs were not promising for an improvement.
But, after a first half in which Fabianski was the busier of the two keepers, Manuel Pellegrini’s side looked the likelier to score after half-time.
Marko Arnautovic touched the ball only seven times in the first half, but a superb piece of control to give Ryan Fredericks a shooting chance early on signalled a better second half display from the striker and his team-mates.
Arnautovic set up the game’s decisive moment, chipping the ball from the right into the path of Antonio, who controlled it with his chest before firing past Lloris from a tight angle.
There was also the unlikely sight of Diop’s long gallop through the middle of the pitch for a shot that lacked enough power to worry Lloris.
But there was also excellent work from Balbuena off the line in injury time, and a superb tackle in the area by Fredericks on Ben Davies, to help West Ham earn only their third away win of the season.
Man of the match – Michail Antonio (West Ham)
‘A complete performance’ – what they said
Tottenham manager Mauricio Pocchetino: “We did not manage the ball properly. It was a difficult game but in the second half we conceded a lot of space for them to counter-attack.
“But we need to look forward. We cannot stop to think about what we did not do today.
“We can’t dominate like against Brighton. The first half was good but we lost the ball too easily in the second half. We arrived for this game in a different condition and that was an important factor in the second half. It was really tough today.”
On Spurs’ top-four chances: “It is a fight, it is a race, with two games to play. We knew that before.”
West Ham manager Manuel Pellegrini: “The result is very satisfying because for the last two games that we deserved to win but we could not do it.
“Today I think we were a complete team, defending together without the ball, and we were playing to win.
“Marko Arnautovic was very good. He made a brilliant pass for Antonio’s goal. It has been a difficult season but I am sure that we will recover the player that he could be.
“This is a transition season. We have demonstrated in big games that we can do it, but we much mentally convince ourselves that we can do better.”
Arnautovic the assist king – the stats
- Tottenham have lost 17 games in all competitions this season, their most since 2008-09 (19).
- West Ham kept an away clean sheet for the first time in their past 10 league games, since a 2-0 win at Fulham in December.
- Tottenham have lost six of their past 10 league games (W3 D1), as many defeats as they suffered in their previous 28 (W22).
- Only Jose Mourinho (5) has beaten Tottenham boss Mauricio Pochettino more often in the Premier League than Manuel Pellegrini (4, level with Pep Guardiola).
- Michail Antonio’s goal was the first Tottenham had conceded at their new stadium in 427 minutes in all competitions.
- All 26 of Antonio’s Premier League goals have come from inside the box.
- Marko Arnautoic has provided more assists than any other West Ham player in the Premier League since the start of last season (10).
Spurs take on Ajax at home in the first leg of the Champions League semi-finals on Tuesday at 20:00 BST. West Ham host Southampton at London Stadium in the Premier League on Saturday, 4 May at 15:00.