A scrappy encounter hardly matched the pre-game hype and the fact it was decided by a set-piece probably summed it all up.
Michail Antonio did the damage in the seventh minute as West Ham bossed the first half.
The tables turned after the break but we could only carve out one clear-cut chance when Toby Alderweireld's shot was parried out by Adrian and it looked like Harry Kane would slot home the rebound, but the ball was slightly behind him and Cheikhou Kouyate got back to clear.
Mauricio Pochettino shuffled his pack on his birthday as he once more rotated his full-backs while, in midfield, Ryan Mason came in for Dele Alli and Nacer Chadli for Heung-Min Son.
There was a full house and a cracking atmosphere inside the stadium but the heavens opened just ahead of kick-off to add some grease to the playing surface.
It was a disappointing start for us as the home side grabbed the lead inside the opening seven minutes from their first corner. Chadli's heavy back-pass to Ben Davies saw the ball go behind, Dimitri Payet whipped it in from the right and Antonio escaped his marker at the front post to head past Hugo Lloris.
There was no escaping the fact that the Hammers were on top and eight minutes later they almost doubled their lead when Mark Noble let fly from distance, but Lloris showed great acrobatics to claw it away as it arrowed towards the top corner.
With a quarter of the game gone, we looked as if we had at least started to weather the storm and threatened on the break with the industry of Erik Lamela and guile of Christian Eriksen. Adrian in the West Ham goal, however, remained a spectator.
The home side were creating the better openings as the half went on and when Noble saw another shot blocked, the ball fell to Antonio in a great position but Kevin Wimmer did well to block his effort when he looked certain to score.
It was one-way traffic as we clung on before half-time although, in stoppage time, Lamela sent in a wicked cross that escaped everyone including the goalkeeper but nobody in Lilywhite was able to turn it in.
We came out of the blocks with fresh impetus and controlled the opening exchanges with Davies dragging wide from distance after we created a decent opening.
For the first time in the game we had the momentum and we had our best chance yet on 53 minutes when Kieran Trippier delivered a dangerous cross for Lamela who headed wide from a good position, unmarked in the box.
On the hour mark we should have been level. Alderweireld, our other birthday boy, stepped out of defence and let fly from distance with the ball bouncing wickedly in front of Adrian. He parried into the path of Kane but the striker failed to get a meaningful contact on the follow-up and the Hammers escaped.
A minute later the keeper came to the hosts' rescue again, thumping out a dangerous shot from Eriksen as the game sparked into life once more.
Antonio volleyed over from another dangerous Payet delivery but the home side were struck a blow as James Collins hobbled off with 25 minutes to go.
Kane couldn't quite connect with Eriksen's dangerous cross from our right before Wimmer was replaced by the returning Tom Carroll with 13 minutes left, Eric Dier dropping in at centre-back with Carroll taking his place in central midfield.
We kept plugging away in search of an opening but clear shooting chances were hard to come by and, as Adrian caught Dier's ball over into the box in the third minute of stoppage time, the game slipped away from us.
West Ham (4-3-3): Adrian; Collins (Oxford 65), Kouyate, Ogbonna, Cresswell; Noble (c), Obiang, Lanzini (Sakho 84); Antonio, Emenike (Carroll 72), Payet. Substitutes (not used): Randolph, Song, Henry, Dobson.
Spurs (4-2-3-1): Lloris (c); Trippier, Alderweireld, Wimmer (Carroll 77), Davies; Dier, Mason; Lamela (Son 70), Eriksen, Chadli (Alli 60); Kane. Substitutes (not used): Vorm, Rose, Walker, Onomah.
Goals: West Ham – Antonio 7.
Yellow cards: Spurs – Alderweireld 30, Wimmer 41, Davies 65.
Referee: Andre Marriner.