The Gunners took the lead on 21 minutes when a fine pass from Dani Ceballos released Bukayo Saka, who crossed for Pierre-Emerick Aubameyang to finish.
After the break, Kelechi Iheanacho's volley was saved by Gunners goalkeeper Emiliano Martinez, while at the other end Alexandre Lacazette had an effort ruled out for offside.
With 15 minutes left, Arsenal substitute Eddie Nketiah was sent off for a dangerous challenge on James Justin, with referee Chris Kavanagh upgrading a yellow card to a straight red after visiting the Referee Review Area.
And Leicester capitalised on their numerical advantage as Vardy finished from a low cross in the 84th minute.
His strike took him to 22 goals for the season, restoring his two-goal lead ahead of Aubameyang in the race for the Golden Boot.
Arsenal stay seventh, on 50 points, while Leicester have dropped to fourth on 59, a point behind Chelsea.
Arsenal: 12 Jul v Spurs (A)
Leicester: 12 Jul v AFC Bournemouth (A)