The substitute scored his first Premier League goal since September 2018 to give the Foxes a dramatic 2-1 win – their sixth straight victory.
The hosts faced an agonising wait before VAR gave the goal after the striker had initially been flagged offside.
Gutsy Everton had looked on course to earn a point and ease the pressure on head coach Silva.
Leicester climbed back to second in the Premier League, eight points adrift of runaway leaders Liverpool.
Everton now go to Anfield for Wednesday’s derby with Liverpool two points above the Premier League drop zone and with Silva clinging on to his job.
The Toffees will feel hard done by after battling performance and Djibril Sidibe flashed over early on.
Ayoze Perez drilled wide and the game was a slow burner until Everton, looking for their first top flight away win since March, silenced the King Power Stadium after 23 minutes.
Richarlison started and finished a sweeping move when he won the ball in midfield. It was worked to Sidibe on the right and his fine cross was met by Richarlison’s thumping header.
It was just the fourth goal the Foxes had conceded at home in the league this season and they struggled to find their usual rhythm.
Perez’s penalty appeals went ignored and Vardy got his acrobatic attempt all wrong to sum up Leicester’s first-half frustrations.
They only grew 10 minutes before the break when VAR overruled a penalty given by Graham Scott.
Vardy tried to bundled his way through only to be stopped and, when Mason Holgate’s loose touch allowed Ben Chilwell to nip in, the left-back went down after Holgate swung out a leg.
Scott awarded the penalty instantly but VAR showed there was no contact between the pair and ruled it out.
Leicester had only lost to Liverpool and Manchester United this term but Everton, far from being fragile, had managed to keep Vardy quiet in the first half.
They grew in confidence and Gylfi Sigurdsson saw a shot deflect wide before Richarlison nodded over and the Toffees enjoyed a solid start to the second half.
But Ricardo Pereira’s strong run ended with Pickford saving his low effort and it was a warning for what was to come.
Everton appeared comfortable, with Sidibe’s deliveries a constant threat, only for the Foxes to level after 68 minutes.
Substitute Iheanacho was played in on the right and his cross was tapped in by Vardy to make the visitors pay for failing to find a second goal when on top.
Former England striker Vardy has now scored in six straight games.
On top, Leicester went in search of a second and James Maddison steered Vardy’s cross straight at Pickford.
The Foxes had the momentum and former England striker Vardy should have added a second with 15 minutes left but headed over Pereira’s cross from eight yards.
Moise Kean’s audacious 25-yard effort then almost caught out Kasper Schmeichel before the drama unfolded in stoppage time.
Iheanacho was sent clear and curled into the bottom corner, only for the assistant referee to flag him offside.
But VAR showed he was just onside to spark wild celebrations.