Leicester ended their run of three matches without a win as all three goals came in the second half.
The Foxes nearly took a first-half lead when James Justin hit the crossbar, while Luka Milivojevic went close for Palace with a free-kick.
Kelechi Iheanacho scored his second goal in as many matches when he tapped in Youri Tielemans’ cross on 49 minutes.
Vardy doubled the lead with his landmark goal in the 77th minute, after Harvey Barnes pounced on a slip by Mamadou Sakho to tee him up. The striker added his second with a rising shot in stoppage time.
Leicester remain third on 58 points. Palace are 12th with 42.