Riyad Mahrez gave City an early lead with a brilliant strike against his former club at the Etihad Stadium but Leicester turned the game around in dramatic style.
Vardy struck twice from the penalty spot, either side of a neat flicked finish before James Maddison scored a stunning fourth.
Nathan Ake pulled one back late on after Liam Delap hit the crossbar but Leicester were rampant and claimed a fifth with another penalty from Youri Tielemans.
It was a third successive win for the Foxes and condemned City boss Pep Guardiola to the heaviest defeat of his career in terms of goals conceded.
City were hampered by injuries and illness and, after Gabriel Jesus became their latest high-profile casualty in midweek, started without a recognised centre forward.
Initially that did not present a problem and the hosts dominated possession with Raheem Sterling and Kevin De Bruyne operating as fluid false nines.
They grabbed the lead after just four minutes with Mahrez’s thunderous strike. James Justin failed to clear a De Bruyne corner and Mahrez rushed in to smash an unstoppable rising shot into the top corner.
City will wonder how they did not add to that lead as Leicester struggled to get the ball off them.
Yet for all their possession, City failed to create the clear-cut chances their dominance would normally yield.
De Bruyne did clip a fine free-kick into the area but Fernandinho’s header was straight at Kasper Schmeichel. Rodri did find the net from a repeat opportunity but his header was ruled out for offside.
City were made to pay for their failure to make possession count as Leicester burst into life with a rare break in the 37th minute.
Kyle Walker was caught out by the pace of Vardy and referee Michael Oliver had no hesitation in pointing to the spot as he hauled the striker down. Vardy made no mistake as he rifled home to make it 1-1 at half-time.
City started the second half brightly as Mahrez flashed a long-range shot wide and Guardiola decided to change the attacking shape by sending on 17-year-old striker Liam Delap, a debut goalscorer in the Carabao Cup in midweek.
Yet it was the Foxes who grabbed the initiative from another flowing counter-attack.
Tielemans released Timothy Castagne with a fine ball down the right and his low cross was perfect for the onrushing Vardy, who flicked brilliantly over Ederson with his heel.
Things then quickly began to unravel for City as Harvey Barnes forced Ederson into a good save from distance.
Moments later City were 3-1 down and Vardy was celebrating his treble, again converting from the spot after being clipped by Eric Garcia.
It soon got worse for City as substitute James Maddison added another with a fine strike. Maddison was fed the ball 25 yards out and he looked up before curling a fine shot over Ederson and into the top corner.
City were not completely flattened as Delap headed against the bar and Ake pulled one back six minutes from time when he headed home from a corner.
But Leicester were not to be denied and they put gloss on the victory after being awarded a third spot-kick in the latter stages.
Again there was little doubt about the decision after Benjamin Mendy fouled Maddison.
Vardy had already left the field but Tielemans took responsibility to score his side’s fifth.