Nathan Redmond and Stuart Armstrong struck either side of the break for Saints, who climbed into the top half of the table in ninth joint on 31 points with Tottenham in the process.
Shane Long should’ve made it 3-0 on the hour mark, but couldn’t take advantage of being played one-on-one with the goalkeeper.
Two moments of brilliance lifted Saints into the lead, with Redmond turning Martin Kelly inside out before shrugging off a challenge from James McCarthy and thumping a right-footed effort into the corner from the edge of the area.
Stuart Armstrong then doubled the lead three minutes after the restart with a superb swivelling effort from distance that beat a sprawling Vicente Guaita.
Jack Stephens and James Ward-Prowse combined to prevent substitute Connor Wickham from getting a sight on goal 10 minutes from full-time, with Saints’ defence standing tall to preserve the clean sheet.
Crystal Palace: Guaita, Ridewald, Cahill, Tomkins, Kelly (Ward 62), McCarthy, McArthur, Kouyate (Meyer 62), Zaha, Ayew, Tosun (Wickham 69)
Unused subs: Hennessey (GK), Dann, Mcgregor, Perrick
Bookings: Tomkins (74)
Southampton: McCarthy, Bertrand, Vestergaard, Stephens, Cedric (Romeu 21), Redmond, Hojbjerg, Ward-Prowse, Armstrong, Obafemi (Adams 84), Long (Ings 70)
Unused subs: Gunn (GK), Yoshida, Djenepo, Boufal
Goals: Redmond (22), Armstrong (48)
Bookings: Redmond (74)