The hard-working, high-flying Hammers had to dig deep at London Stadium before emerging at the final whistle with another three points and a berth in the heady heights of the Champions League places.

Recalled Michail Antonio set West Ham United on their way inside the opening five minutes before Jesse Lingard doubled the lead just after the interval.

That proved the catalyst for a Tottenham Hotspur recovery that saw Lucas Moura pull a goal back midway through the second half, while the visitors also struck the woodwork twice during a frantic finale in their quest to get back on level terms.

But while the Hammers had famously fought back from a three-goal deficit to snatch a 3-3 draw at Tottenham Hotspur Stadium back in October, there was to be no such repeat for Spurs, who just could not muster the equaliser that they would have felt their 70 per cent possession deserved.

Victory over Sheffield United on Monday night had seen West Ham kick-off in fifth spot, having made their best start to a season for 35 years and, following that 3-0 win over the rock-bottom Blades, David Moyes made two changes as a rejuvenated Antonio and Pablo Fornals came in for substitutes Manuel Lanzini and Ben Johnson.

Antonio may have been absent with fatigue for the past two matches but he had clearly returned ready and refreshed and raring to go as the Hammers made a supercharged start.

With less than five minutes on the clock, Tomáš Souček reclaimed compatriot Vladimír Coufal’s half-cleared centre and recycled the ball back out to Jarrod Bowen, whose right-wing cross into the six-yard box was met by Antonio.

And although Hugo Lloris managed to parry the striker’s first shot on goal, he was powerless to prevent Antonio from pouncing onto the rebound and prodding the Hammers ahead with his seventh strike of the campaign.

Having taken the lead, Moyes' men then had two great chances to double their advantage but Lingard was caught in two minds as he skewed an attempted cross-cum-shot beyond the far post as Antonio raced into the danger-zone and then Bowen failed to control a dropping ball with only Lloris to beat.

With just one win from their last five Premier League outings, Spurs had arrived at London Stadium in ninth spot, six points adrift of the Hammers, but they had shown signs of a return to form on Thursday night with an emphatic 4-1 win over RZ Pellets WAC in their Europa League last-32 first-leg tie.

And following that victory over the Austrians, José Mourinho made seven switches as he returned to the bread and butter of domestic football, handing starts to Harry Kane, Davinson Sanchez, Erik Lamela, Sergio Reguilón, Pierre-Emile Højbjerg, Tanguy Ndombele and Japhet Tanganga.

While the Hammers were looking threatening, clever footwork by Lamela gave Kane his first sight of goal but he drilled wide from 15 yards and then Craig Dawson bravely blocked a close-range effort from the England skipper following a frantic goalmouth scramble.

Indeed, during that melée, a nasty clash of heads between Sanchez and Souček led to the bloodied Czech midfielder departing for seven seemingly endless minutes during which time everyone in Claret and Blue looked anxiously towards the tunnel for his return as Spurs unsuccessfully failed the make their extra man count.

Ten minutes before the break, Issa Diop was also in the wars when the consequently-cautioned Lamela lunged at the Frenchman and there was agony of a different kind for central-defensive partner, Dawson, who saw Lloris tip his thumping header over the bar after Aaron Cresswell delivered an inch-perfect corner into the goalmouth.

Lamela’s curling 20-yarder was then saved at full stretch by the flying Łukasz Fabiański and, as Tottenham's first-half frustration bubbled over, there were late bookings for Højbjerg and Reguilón for illegal challenges on Lingard and Bowen, before Kane was also denied by the Hammers keeper to preserve West Ham’s lead at the interval.

Mourinho introduced Gareth Bale and Matt Doherty as Lamela and Tanganga stood down for the second half but within just two minutes of the restart, the Portuguese head coach saw his side fall yet further behind.

Winning a challenge on halfway, Antonio found Lingard, who quickly shifted the ball to Fornals before racing into the left-hand channel for the return.

With the Spaniard nudging the ball back towards the on-loan Manchester United man, Sanchez could only knee the ball into Lingard’s path and he calmly drilled a left-footed 12-yarder beyond the outstretched left glove of Lloris before surviving a VAR review.

Certainly, Lingard’s third goal since arriving from Old Trafford gave the Hammers a much-needed cushion as Spurs set about clawing back that two-goal deficit.

Kane drilled a low, angled 20-yard free-kick inches wide of the base of the far post, before Sanchez fired over and Bale deposited an 18-yarder into Fabiański’s gloves, while both Souček and Diop saw yellow for upending Kane and Moura.

Then, on 64 minutes, the goal that Spurs had been threatening arrived when Bale delivered a corner to the edge of the six-yard box, where Moura got in front of Cresswell to glance a header under Fabiański’s near angle to claim his eighth goal of the season.

Still ahead but on the back foot, the Hammers then saw Kane rifle another low 18-yarder wide, while Antonio and Fornals also went into the book for encroachment and an untidy tackle on Ndombele respectively.

At the other end, on a rare excursion forward, Lingard spurned a glorious opportunity to shoot and, with Spurs breaking back upfield, the hosts almost paid the price when Bale lashed Kane’s cutback onto the crossbar with a curling 18-yarder.

Then in stoppage time, the woodwork again came to West Ham’s rescue when Heung-min Son’s deflected, angled effort looped onto the far post and away to safety and Moyes men survived to hear the final whistle which signalled another three points and, incredibly, that top four spot ahead of next weekend’s trip to leaders Manchester City.

HAMMERS: Fabiański, Coufal, Cresswell, Dawson, Diop, Rice, Souček, Bowen (Benrahma 65), Fornals (Johnson 81), Lingard (Noble 90+3), Antonio. Unused subs: Martin, Randolph, Balbuena, Lanzini, Alves, Odubeko.

SPURS: Lloris, Tanganga (Doherty h/t), Reguilón (Alli 76), Dier, Sanchez, Højbjerg, Ndombele, Lamela (Bale h/t), Moura, Son, Kane. Unused subs: Hart, Alderweireld, Winks, Sissoko, Davies, Vinicius.

Booked: Lamela (36), Højbjerg (42), Reguilón (44), Souček (56), Diop (62), Antonio (68), Fornals (71).

Referee: Craig Pawson.