Mikel Arteta's side had won their previous four home league games and were unbeaten in 11 on their own patch this calendar year but that run was ended by Vardy.
The striker was not fit enough to start but was brought on with an hour played and steered in a header 10 minutes from time through City's first attempt on target of the match.
Vardy's 11th goal in 12 league games against Arsenal also ended Leicester's 28-game wait for an away win against Arsenal in all competitions as they moved up to fourth.
11/5 - Jamie Vardy has scored 11 goals in 12 Premier League matches against Arsenal, with only Wayne Rooney (12) scoring more against the Gunners in the competition. Vardy is now also the highest scoring away player at the Emirates in top-flight ties (5 goals). Snatched. pic.twitter.com/1xPrr4kdfL— OptaJoe (@OptaJoe) October 25, 2020
The game may have turned out differently had Alexandre Lacazette's fourth-minute header not been ruled out for an offside infringement by Granit Xhaka in front of goal.
Lacazette then missed a couple of good opportunities in a first half dominated by Arsenal and Pierre-Emerick Aubameyang was also wayward with a header as his scoreless streak stretched to a fifth league game.
Arsenal lost David Luiz to injury early in the second half and had to contend with a different type of threat when Leicester turned to Vardy.
That led to a slight shift in momentum, but Arsenal initially continued to look the livelier side in the final third, with Hector Bellerin's cleanly-struck first-time shot forcing Kasper Schmeichel into a rare save.
However, it took just once chance for Vardy to prove the difference between the sides as he headed into the gaping net after being picked out by fellow substitute Cengiz Under.
Bernd Leno denied Vardy in a one-on-one during added time but it did not matter from Leicester's perspective as they held on for the rarest of victories in this fixture.
What does it mean? Vardy the difference
Not for the first time in a Premier League match between Arsenal and Leicester, Vardy had the final say with his header inside the box following a nice Leicester move.
That was one of only two attempts on target for the visitors - the other coming from Vardy in stoppage time - whereas Arsenal managed 12 shots and tested Schmeichel four times.
City had previously been without a point and a goal in two league games, but this win should help revive their campaign. As for Arsenal, they are proving as inconsistent as ever.
Lacazette lacks finishing touch
The forward was perhaps a little unfortunate to have his early header ruled out through no fault of his own, but he should have taken one of his other chances.
He failed to make proper contact with Kieran Tierney's cross when picked out in the six-yard box and ended the match with fewer touches (31) than any other outfield starter for Arsenal.
Subs combine for Leicester
Harvey Barnes was used through the middle for Leicester in a tactical tweak that did not pay off for Brendan Rodgers, the attacking midfielder managing just one touch of the ball in the opposition box during his 75 minutes on the field.
The introduction of Vardy and Under from the bench gave the visitors a completely different approach and so it proved late on when the latter made a run in behind, collected the ball and spotted his team-mate in the middle to win the game.
Key Opta stats:
- Leicester picked up their first away win at Arsenal since September 1973, ending a run of 27 games without an away victory against them in all competitions.
- Arsenal suffered their first Premier League home defeat of 2020, with this their first loss at Emirates Stadium in the competition since Mikel Arteta's first home game in charge (2-1 v Chelsea in December 2019).
- This was Leicester's fourth victory in the Premier League this season; their joint-most after six games of a top-flight campaign, having also won four of their opening six in 2000-01.
- Arsenal have scored just eight goals in six Premier League games this season - they have only netted fewer at this stage in one of the previous 20 top-flight campaigns (five goals in 2015-16).
- Jamie Vardy has scored five goals at Emirates Stadium in the Premier League - the most of any visiting player (overtaking Harry Kane on four).