West Ham outlined their top-four credentials with a 2-1 win over an unravelling Tottenham, who lost for the fifth time in six Premier League games to leave Jose Mourinho feeling the pressure.
The Hammers climbed into fourth position thanks to goals from Michail Antonio and Jesse Lingard, giving them their highest ever points tally at this stage of the season in the Premier League era.
They are nine points above their London rivals and David Moyes celebrated his first win over Mourinho at the 16th time of asking after withstanding a late assault by Spurs, who gave themselves hope through Lucas Moura.
But Tottenham could not find a leveller, hitting the woodwork twice, and their demise has been stark as from a position at the top of the table in mid-December they have won just three of last 13 games, meaning their hopes of qualifying for the Champions League through the league are all-but over.
Mourinho will surely now focus his attention on winning the Europa League while he can also bank on a Carabao Cup final against Manchester City in April.
He was not helped by yet more defensive frailties, which led to a fifth-minute opener for Antonio.
Jarrod Bowen was allowed too much space on the left and he curled in a delicious ball that left the Spurs defence all at sea.
Eric Dier chose not to clear it and Hugo Lloris opted not to claim it, allowing Antonio to stab the ball goalwards. Lloris saved with his legs but the rebound fell straight to the Hammers striker who poked home from two yards out.
It was some more slapdash defending that actually led to a great chance to equalise.
After Pablo Fornals ran unchallenged into the penalty area, but his cross was cleared to Erik Lamela, who rode several tackles and carried the ball 40 yards before playing in Harry Kane.
But the England captain was unusually wasteful as he skewed his effort off target from just inside the penalty area.
Kane had another shot blocked by Craig Dawson as Spurs tried to force a way back into the game, but they were always vulnerable at the back.
Lloris had to make a good save to tip over Dawson’s header from a corner and the central pairing of Davinson Sanchez and Dier never looked in control.
But it was Spurs that ended the first half pressing for the leveller as Lukasz Fabianski made two good saves.
First he kept out Lamela’s 20-yard effort before producing a much better stop to deny Kane’s low shot in first-half added time.
Mourinho threw Gareth Bale on at half-time but within two minutes of the restart they were 2-0 down.
Some more shoddy defending saw Lingard surge through on goal and he fired into the bottom corner. The linesman immediately flagged for offside, with Fornals in an advanced position, but VAR overruled the decision and the goal stood.
Spurs had a mountain to climb but they started the comeback midway through the second half when Moura headed in Bale’s corner for his first Premier League goal since September.
Then the onslaught in the final 20 minutes started and it was only poor finishing that stopped them taking at least a point.
Moura blazed over from the edge of the area, Kane fizzed a low effort inches wide of Fabianski’s post.
Spurs hit the woodwork twice in the final 15 minutes as they searched for a leveller.
Bale fizzed an effort that clipped the top of the crossbar from 18 yards and then, deep into injury time, Son Heung-min’s deflected effort looped into the post, confirming that it was to be West Ham’s day.
Fabianski 8; Diop 7, Dawson 8, Cresswell 7; Coufal 6, Rice 8, Soucek 7, Fornals 6 (Johnson 81); Bowen 6 (Benrahma 65), Antonio 6, Lingard 7 (Noble 90+2)
Lloris 6; Tanganga 6 (Doherty 46), Sanchez 7, Dier 6, Reguilon 6 (Dele Alli 76); Ndombele 7, Hojbjerg 7; Lucas 6, Lamela 6 (Bale 46), Son 6; Kane 7