The Eagles scored their first away goal of the season when Christian Benteke headed in Andros Townsend’s cross on 19 minutes.
Wilfried Zaha doubled the lead from Benteke’s pass five minutes before the break.
Leicester’s hopes of a fightback were hit in the second half when Wilfred Ndidi, on his 21st birthday, was sent off, with his second yellow card being for simulation.
Substitute Bakary Sako scored a third in stoppage time as Palace went seven matches unbeaten for the first time in the Premier League.
The win lifts Palace to 14th but only three points off the relegation zone. Despite an end to their four-match winning run Leicester remain eighth.
Leicester: 23 Dec v Man Utd (H)
Palace: 23 Dec v Swansea (A)