Leicester signalled the end of Manuel Pellegrini's West Ham reign in cutting the gap on Premier League leaders Liverpool to 10 points.
Kelechi Iheanacho and Demarai Gray – who saw his 11th-minute penalty saved by the fit-again Lukasz Fabianski – were on target either side of Pablo Fornals' leveller on the stroke of half-time.
The win was Leicester's first in four games and came after successive defeats to Manchester City and Liverpool.
It also marked the end for Pellegrini after a run of two wins from 14 matches saw West Ham tumble from fourth to 17th in the space of three months.
A fourth straight home defeat came after Leicester boss Brendan Rodgers had made nine changes from the side beaten 4-0 by Liverpool on Boxing Day.
Top scorer Jamie Vardy was among those missing after his wife Rebekah gave birth to their third child.
But Leicester made light of the changes to move closer to unbeaten Liverpool, who have two games in hand on the Foxes.
Manchester United moved into fifth and within one point of Chelsea with a 2-0 victory at Burnley.
Anthony Martial brought a low-key first half to a close in fine style, coolly converting Andreas Pereira's clever pass for his third goal in two games.
David De Gea, criticised for his howler in last week's defeat at Watford, saved superbly from Phil Bardsley before Marcus Rashford secured victory in the fifth minute of stoppage time with his 16th goal of the season.
There was no shortage of VAR controversy on a day when three goals were disallowed for offside by the tiniest of margins.
One of them came at Carrow Road where Norwich and Tottenham drew 2-2.
Mario Vrancic's first Premier League goal had given Norwich an 18th-minute lead before Teemu Pukki's brilliant finish was ruled out by VAR, even though the Finland striker originally looked onside.
Tottenham made the most of their good fortune as Christian Eriksen levelled with a brilliant 55th-minute free-kick.
Norwich were back in front within six minutes when Serge Aurier put through his own net.
But Harry Kane equalised from the penalty spot seven minutes from time after Christoph Zimmermann had brought down the England captain.
Dominic Calvert-Lewin was the hero again as Carlo Ancelotti's Everton continued to climb the table with a 2-1 win at Newcastle.
Calvert-Lewin was the matchwinner on Boxing Day as Ancelotti began his Everton reign with a 1-0 victory over Burnley.
And the 22-year-old striker took his season's goal tally to 10 – the best of his career – with two more at St James' Park inflicting a third defeat in four games on Steve Bruce's Newcastle, with Fabian Schar grabbing a consolation.
Troy Deeney scored twice as 10-man Watford beat Aston Villa 3-0 to maintain their revival under new manager Nigel Pearson.
Deeney put the Hornets ahead three minutes before Watford were reduced to 10 men in the 57th minute when Adrian Mariappa was sent off for a second bookable offence.
But Deeney converted his third goal in as many games midway through the second half, slotting home from the penalty spot, and four minutes later Ismaila Sarr wrapped up victory.
Brighton recorded their first home win since November 2 with a convincing 2-0 victory over struggling Bournemouth.
Iran international Alireza Jahanbakhsh gave the Seagulls a third-minute lead with a powerful shot, his first goal for the club.
VAR ruled out a second-half goal from Dan Burn after the Brighton left-back was judged to be offside by the tightest of margins.
But Aaron Mooy rewarded Brighton's domination with a brilliant second goal 11 minutes from time.
Southampton and Crystal Palace drew 1-1 at St Mary's. Palace were denied an early lead when Max Meyer smashed home, only for Wilfried Zaha to be ruled marginally offside by VAR in the build-up.
James Tomkins headed Palace in front before Danny Ings levelled with his 12th goal of the season.