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...
Hugo Lloris 7
Quick off his line to deal with balls in behind and denied Pablo Fornals either side of half-time. Powerless to prevent the goal.
Emerson Royal 6
Offered little in the way of attacking threat and had a tricky afternoon against Fornals, who was West Ham’s biggest attacking threat.
Cristian Romero 7
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.
Eric Dier 7
Helped Romero with the threat of Antonio and defended well.
Watch: Spurs and West Ham managers react to Hammers' 1-0 win
Sergio Reguilon 6
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.
Oliver Skipp 7
Made some crucial interventions defensively and covers ground, but limited in possession, particularly in the final third.
Pierre-Emile Hojbjerg 6
After two good performances with the ball against Aston Villa and Newcastle, he was much sloppier and none of his Hollywood passes came off.
Lucas Moura 6
A good pass to release Reguilon aside, he offered little in the final third and was well marshalled by West Ham.
Tanguy Ndombele 7
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.
Heung-min Son 5
Had a hesitant afternoon by his standards and could not make the most of two good openings in the first half.
Harrry Kane 5
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.
Watch: 5 Minute Home Core Workout Without Equipment | Move At Home