Jamie Vardy forced a late leveller to rescue a point for Leicester and deny Manchester United what would have been an impressive win.
The striker thought he was leaving the field with an 85th-minute equaliser in a 2-2 draw after Bruno Fernandes’ goal looked to have won it for the visitors, but it was quickly deemed United defender Axel Tuanzebe’s deflection was the pivotal touch.
Marcus Rashford’s opener, his 50th in the Premier League, had earlier been cancelled out by Harvey Barnes.
United missed the chance to leapfrog the Foxes – who drew in the league for the first time this season – and remain a point behind their hosts.
Ole Gunnar Solskjaer’s side stretched their unbeaten top-flight run to eight games but a draw does little to help their quest to chase down leaders Liverpool, who are three points ahead of Leicester.
Both teams can now be overhauled by Chelsea and Everton if they win their games later on Boxing Day.
United’s 2-0 win at the King Power Stadium in the final game of last season ended the Foxes’ Champions League hopes.
They dropped out of the top four that day, as United took the final spot, but there has been no hangover for Brendan Rodgers’ side as they maintain a title challenge.
Yet their home form – losing four – had been their Achilles heel this season and they were almost punished after 71 seconds when Rashford missed a golden chance.
Patient build-up ended with Fernandes crossing for Rashford but he planted an unmarked header over from six yards.
It was an awful miss and United nearly paid the price a minute later when Vardy knocked Marc Albrighton’s cross over.
An entertaining opening continued and the visitors survived a let-off when David De Gea and Harry Maguire made a mess of things before Eric Bailly hacked Albrighton’s centre away.
Slowly, Leicester appeared to settled and started to control the ball only for Rashford to atone for his horror miss after 23 minutes.
After intricate play on the left Fernandes poked Daniel James’ ball forward for Rashford, who had run off the back of James Justin, to coolly find the bottom corner.
Yet, the lead lasted just eight minutes when a rare mistake from Fernandes allowed Wilfred Ndidi to rob him and James Maddison then found Barnes to rifle in from 20 yards.
There was little to separate the sides during a lively first half, although Fernandes glanced Luke Shaw’s free kick over, and United began the second on the front foot.
Wesley Fofana had to be alert to halt James’ break and a superb Kasper Schmeichel save denied Rashford a second after Fred slipped him clear on the hour.
Anthony Martial also had a goal rightly ruled out for offside as United’s intensity grew and the Foxes struggled to make inroads.
Maguire headed over against his former club but the visitors found the goal they had threatened with 11 minutes left.
Edinson Cavani had made a positive impact since replacing Martial and his driving run ended when he played Fernandes through to finish low past Schmeichel.
But the Foxes hit back again with five minutes remaining when Vardy swept in Ayoze Perez’s cross, via the deflection off Tuanzebe, to earn a point.