United went into the game looking to close the gap on Premier League leaders Manchester City to 11 points and they were the better side in the opening exchanges, with Chris Smalling heading a Juan Mata cross over the bar with just two minutes gone.
Minutes later Kasper Schmeichel had to be alert to tip a deflected effort from Jesse Lingard over the bar as United stamped their authority on the game.
A number of shots from range followed but with United failing to make the most of their dominance they were soon made to pay.
With 27 minutes played Leicester regained possession deep in their own half and immediately launched a counter-attack. Wilfred Ndidi sent Riyad Mahrez racing away and the Algerian had the presence of mind to wait for support from Vardy before playing in his team-mate, with the England man duly slotting home first time left-footed from 10 yards.
Despite the setback, United reacted well and they levelled five minutes before the break.
Jesse Lingard showed great awareness to pop Anthony Martial’s cross from the left into the path of Mata and the Spaniard threaded the eye of a needle to find the far corner through a horde of bodies.
The hosts could have taken the lead second before the break but Harry Maguire’s touch let him down after he ghosted in at the far post to meet Mahrez’s free kick and Ashley Young was able to hack clear.
With that, the two sides went in at the break level and there wasn’t much to decide between them in the early knockings of the second period.
Christian Fuchs saw a low drive blocked almost on the line by Victor Lindelof after the ball dropped to him at the far post, before Anthony Martial blazed over after Romelu Lukaku put him through one-on-one.
A moment of magic soon put daylight between the sides once again though, as Juan Mata curled a beautiful free kick from the edge of the box beyond Schmeichel, though the Dane arguably could have done better.
United should have put the game to bed with 18 minutes remaining as Lingard rounded Schmeichel after being put in by Lukaku but his effort cannoned back into play off the post.
It looked like that wouldn't matter in the end though for United as Leicester shot themselves in the foot a minute later.
Just 16 minutes after replacing the injured Danny Simpson, Daniel Amartey was shown a second yellow card, sending him for an early bath and giving his side an insurmountable mountain to climb. Or at least, so it seemed.
United had a chance to make the game safe with 10 minutes to go as Paul Pogba sent substitute Marcus Rashford racing through on goal but he tried to round Schmeichel and failed.
In the dying seconds, United's profligacy in front of goal came back to haunt them as Maguire was presented with an almost identical chance to the one he had in the first half, but this time he made no mistake, guiding Marc Albrighton's ball from deep past De Gea to earn his side a share of the spoils.
Manchester City were the real winners in this one though, with Pep Guardiola's side now holding a 13-point lead at the top of the table.