Both teams had forays forward in the opening stages, but the first clear chance fell to the hosts when Marc Albrighton was inches away from opening the scoring as he cut inside and fired off the base of the post, with Riyad Mahrez unable to convert the rebound.
Scott Dann did well to clear Vardy's drilled ball across goal over the bar as the Foxes came forward again moments later, and Jeffrey Schlupp saw his effort from the edge of the box blocked as Claudio Ranieri's side looked the more likely to find a way through.
© Getty Images
Premier League top scorer Vardy was aiming to score for the seventh league match in a row but as the Foxes' final ball let them down, Palace had their first effort when Yannick Bolasie's fierce drive was blocked by Wes Morgan.
The game continued in scrappy fashion as both sides struggled to convert midfield possession into scoring chances, with Yohan Cabaye's weak effort drifting wide as the first half petered out without a breakthrough.
Dann headed a corner wide and Christian Fuchs fired wide as the teams exchanged chances after the restart, but it was not until the hour mark that a familiar name got onto the scoresheet.
© Getty Images
Brede Hangeland gave the ball away to Mahrez and the Algerian fed Vardy who dinked over Hennessey and smashed home his 10th goal of the season to give the home side the lead.
Kasper Schmeichel had to parry a fierce Bakary Sako strike and scramble away Dann's header as Palace looked for an quick response, before Wilfried Zaha was booked for diving late on after going down in the penalty area.