Sadio Mane’s strike separated the sides at half-time on Boxing Day before Ryan Bertrand slammed home a second shortly after the break and Toby Alderweireld’s thundering header effectively put the result beyond doubt.
Scott Dann headed a late consolation for Palace, who slipped back into the drop zone and have now gone six matches without a victory ahead of Sunday’s crucial encounter at fellow-strugglers QPR.
In contrast, Southampton will take on leaders Chelsea on Sunday full of confidence as they continue their impressive response to losing four consecutive games.
The visitors were almost ahead in the fourth minute as Palace half-cleared a corner and Alderweireld hooked goalwards from 20 yards, but Julian Speroni manage to tip the ball onto the crossbar.
Fraizer Campbell dragged wide at the other end and Graziano Pelle glanced a header over the bar in an entertaining opening period.
Fraser Forster got down well to his left to hold a decent low strike from former Saint Jason Puncheon before Southampton broke the deadlock on 17 minutes.
Mane timed his run perfectly to spring the offside trap and race onto a precision pass from Steven Davis before rounding Speroni and clipping into an empty net.
Palace responded positively, but time and again their attacking intent was ruined by a lack of quality with the final ball, although Mile Jedinak did force another smart save out of Forster.
Joe Ledley blazed high and wide, while Campbell rattled the crossbar not knowing he had been flagged for offside.
James Ward-Prowse looped a header just over as he looked to take advantage of uncertain home defending, but Southampton were worthy leaders at the interval.
It took only three minutes of the second half for the Saints to double their lead, Bertrand lacing a 15-yard piledriver into the top corner after Pelle had swiped at – and missed – Mane’s low cross from the right.
Palace looked more forlorn and lacking ideas going forward as the visiting defence dealt comfortably with the threat of Yannick Bolasie in particular, and Southampton added a hammer blow in the 53rd minute.
A quick corner on the right caught the Palace defence flat-footed, and Ward-Prowse’s floated cross to the near post was met with a towering header from Alderweireld that had too much power for Speroni to keep out.
The Eagles goalkeeper got everything behind a fizzing strike from former Palace defender Nathaniel Clyne, while Dwight Gayle’s downward header at the other end was well blocked by Florin Gardos – making his first Premier League start.
The classy Mane skimmed the top of the crossbar with a delightful curling effort from 20 yards before Dann gave the home faithful something to cheer on 85 minutes, heading Jedinak’s superb cross beyond the reach of Forster.
The England keeper would not be beaten a second time, clutching a decent effort from James McArthur as Palace raised their game in the closing stages.
But Southampton had already done enough to earn their second straight win which reclaimed fourth place in the table ahead of West Ham.
Crystal Palace: Speroni (5), Mariappa (5), Dann (6), Delaney (5), Ward (6), McArthur (6), Jedinak (6), Ledley (5), Puncheon (5), Campbell (4), Bolasie (5).
Used subs: Zaha (4), Gayle (6), Kelly (5).
Southampton: Forster (8), Clyne (7), Yoshida (6), Gardos (7), Bertrand (7), Steven Davis (8), Alderweireld (8), Schneiderlin (7), Ward-Prowse (8), Pelle (6), Mane (8).
Used subs: Long (5), Wanyama (5), McCarthy (5).
Man of the match: Sadio Mane