Everton came closest to a first-half goal when Lucas Digne's cross was met by Jonjoe Kenny, whose shot hit the bar.
Leicester got the winner in the 58th minute. Pouncing on a miscontrol from Michael Keane, Ricardo Pereira slipped in Vardy to finish past Jordan Pickford for his seventh goal of the season.
Everton struggled to fashion chances to equalise, with Cenk Tosun's shot straight at Kasper Schmeichel one of only two for them on target.
A third win in four moves Leicester up to seventh on 31 points.
Everton are 10th with 27 points after their fourth defeat in five.
Everton: 13 Jan v AFC Bournemouth (H)
Leicester: 12 Jan v Southampton (H)