Paddy McCarthy's second-half goal was enough to end Town's six match unbeaten run.
The Palace skipper reacted quickest to divert Sean Scannell's cross past David Stockdale in front of the biggest crowd at Portman Road this season.
Town rarely went through the gears with Jay Emmanuel-Thomas going closest to breaking the deadlock just before the break and finished the game with 10 men after Aaron Cresswell was sent-off.
Town boss Paul Jewell made changes to his line-up for the first time in seven games, Nathan Ellington and Emmanuel-Thomas replacing Michael Chopra and Jason Scotland up front, with Damien Delaney in for the injured Ibrahima Sonko.
Delaney had an anxious look back after diverting a right wing cross inches past the far post inside the first two minutes, while at the other end Grant Leadbitter twice had shots blocked inside the Palace box.
Glenn Murray had a great chance to open the scoring when Wilfried Zaha set him up but miskicked from 10 yards out, then Delaney hooked the ball to safety while on the floor after Murray had again threatened.
Scannell fired wide from distance as Palace edged the opening exchanges but Blues carried a threat and from Carlos Edwards' cross Lee Bowyer skimmed a header wide.
Delaney did enough to prevent Murray getting on the end of Jimmy Bullard's wayward pass, Cresswell and Kagisho Dikgacoi both picking up yellow cards in the space of a couple of minutes.
Murray came closest to giving Palace the lead four minutes before the break, the summer signing from Brighton denied by Stockdale's feet from eight yards out.
Seconds later Ellington released Emmanuel-Thomas in the brightest moment of the first-half for Blues, Julian Speroni producing a terrific save at full stretch.
Palace finished the half on the front foot and it needed the timely intervention of Cresswell to keep the scores level, the full-back denying Dikgacoi from six yards after Scannell got around the back.
Edwards fired high and wide from 30 yards as the second-half got underway, Town forced into a change almost straightway with Delaney going off, Ivar Ingimarsson his replacement.
Murray headed over at the far post after a Palace break before the Eagles got the breakthrough on 54 minutes. Town didn't clear a free-kick, Scannell crossed from the right and McCarthy diverted the ball past Stockdale.
Stockdale held firm from Mile Jedinak's free-kick before Blues made a double change on the hour, Chopra and Scotland on for Ellington and Jimmy Bullard.
Stockdale came to Town's rescue, denying Scannell who raced into the box after beating two challenges.
Palace made their first change with Jonathan Williams on for Dikgacoi for the last 15 minutes.
Keith Andrews lashed a shot wide of the far post as Town pressed for an equaliser, Emmanuel-Thomas' free-kick flicking off the top of the bar as the game entered the last five minutes.
Town were reduced to 10 men in added on time, Cresswell dismissed for a second booking after showing dissent following a handball claim inside the Eagles' box.
Bowyer was yellow carded seconds later for a foul and referee David Phillips ended the contest soon after with Palace deserving the three points.
Town: Stockdale, Edwards, Delaney (Ingimarsson 48), Collins, Cresswell, Andrews, Bullard (Chopra 60), Leadbitter, Bowyer, Emmanuel-Thomas, Ellington (Scotland 60). Subs not used: Lee-Barrett, Wabara. Sent-off: Cresswell. Booked: Cresswell, Bowyer.
C.Palace: Speroni, Parr, McCarthy, Gardner, Clyne, Wright, Jedinak , Dikgacoi (Williams 73), Zaha, Murray, Scannell (Easter 87). Subs not used: Price, O'Keefe, Ramage. Booked: Dikgacoi.
Att: 24, 763