The Welsh midfielder’s second-half goal was enough to snatch a fourth straight victory on the road for Alan Pardew’s men, but the home side will feel aggrieved, as they had the chances to earn at least a point.
After their fifth win in six under Pardew, the Eagles remain in 13th, but Leicester have lost three in a row, and remain rooted to the bottom of the table.
The Foxes showed signs of the strain throughout the contest, with boss Nigel Pearson involved in a touchline fracas with Palace midfielder James McArthur.
Palace started the match on the front foot, and, through Wilfried Zaha, looked a real danger on the counter.
But for all their probing, Palace looked a little vulnerable at the back, and were fortunate not to concede.
Julian Speroni got down to a Riyad Mahrez drive to push the ball out, with David Nugent unable to capitalise on the rebound.
Nugent then had the chance of the first-half, but his header from a dangerous corner came back off the post, with Speroni well beaten this time.
The introduction of Yaya Sanogo at half-time by Pardew gave the visitors added impetus and it was not long before they were in front.
A left-wing corner picked out another Palace substitute, Brede Hangeland, at the back post, and his header back into the six-yard box was nodded past a stranded Mark Schwarzer by Ledley, on the run
Almost immediately Ledley could have turned from hero to villain, as his woeful backpass was seized upon by Nugent, but the former Everton forward wasted the chance.
Speroni was called upon on several other occasions, with several fine saves thwarting substitute Jamie Vardy.
McArthur’s exchanged words with Pearson, the Leicester boss taking hold of the Palace player’s shirt, but that flashpoint was quickly diffused by referee Lee Mason.
Pearson, though, will be left to reflect on another home defeat that leaves his side three points from safety.
Charlie Nicholas’ verdict
“Leicester deserved something from the game.
“The good chance came and went. They threw everything at it.
“That cutting edge, that last pass, the vision or composure just isn’t there. It is not looking good for Leicester.”
Leicester: Schwarzer (6), Konchesky (6), Wasilewski (6), Morgan (6), Simpson (5), Mahrez (8), James (5), Cambiasso (6), Schlupp (7), Nugent (7), Ulloa (5).
Used subs: Vardy (7), Kramaric (6), Albrighton (6).
Crystal Palace: Speroni (8), Ward (6), Delaney (7), Dann (6), Kelly (6), Puncheon (7), McArthur (6), Gayle (7), Ledley (7), Zaha (7), Mutch (5).
Used subs: Sanogo (7), Hangeland (6), Guedioura (6).
Man of the Match: Julian Speroni