Michail Antonio settled an even contest when he got in front of the a static Harry Kane to poke home Aaron Cresswell’s corner in the 71st-minute.
The result will increase the pressure on Nuno Espirito Santo and follows derby defeats to Crystal Palace, Chelsea and Arsenal already this season.
Dan Kilpatrick was at the London Stadium to run the rule over the Spurs players…
Quick off his line to deal with balls in behind and denied Pablo Fornals either side of half-time. Powerless to prevent the goal.
Offered little in the way of attacking threat and had a tricky afternoon against Fornals, who was West Ham’s biggest attacking threat.
His individual battle with Antonio was one of the game’s best subplots. Twice outmuscled by the striker but Spurs would surely have been better off if he – not Kane – was marking Antonio for the goal.
Helped Romero with the threat of Antonio and defended well.
Guilty of a really sloppy piece of play to lose the ball in the build-up to the goal and had a tough examination from the lively Jarrod Bowen. Got stuck in defensively and stood up a great cross to the back post for a Kane chance.
Made some crucial interventions defensively and covers ground, but limited in possession, particularly in the final third.
After two good performances with the ball against Aston Villa and Newcastle, he was much sloppier and none of his Hollywood passes came off.
A good pass to release Reguilon aside, he offered little in the final third and was well marshalled by West Ham.
Created Spurs’ best chance of the first half to release Son with fine through ball and looked the most likely to unlock the West Ham defence.
Had a hesitant afternoon by his standards and could not make the most of two good openings in the first half.
Had one good effort with a back post header which forced Lukasz Fabianski into a one-handed save but often looked like a disinterested passenger. His decisive contribution was a failure to challenge Antonio for the goal.
Bryan Gil (Reguilon 84’) 5
Spurs struggled after Antonio’s goal and Nuno’s late subs changed little.
Giovani Lo Celso (Ndombele 84’) 5
Bergwijn (Moura 90’) N/A
Not used: Gollini, Sanchez, Rodon, Dele, Tanganga, Davies.