The Brazilian attacker netted headers either side of half-time to stretch Saints’ unbeaten league run at St Mary’s to 24 matches in front of a sold-out crowd.
Nigel Adkins’ side dominated the first period and only a fine save from Julian Speroni prevented Rickie Lambert breaking the deadlock with a stooping header inside nine minutes.
Southampton’s first-half performance belied their recent poor form and they broke the deadlock in the 34th minute, with patient build-up play paying dividends when Do Prado connected with Steve de Ridder’s cross.
Play-off contenders Crystal Palace – who were unbeaten on Boxing Day since 2004 – never look like securing a third successive league win on the south coast and saw defeat confirmed when Do Prado connected with a Frazer Richardson cross with 13 minutes remaining.
Heading into the match, Southampton made one change to the side held to a 1-1 draw at bitter rivals Portsmouth as they brought in De Ridder for captain Dean Hammond.
Jose Fonte was named skipper against his former club, who made several changes and recalled highly-rated Wilfried Zaha after suspension.
The south Londoners won the pair’s previous encounter this season in the Carling Cup fourth round and Southampton looked to make amends from the offset.
Having dominated the opening exchanges, Southampton went close to taking a ninth-minute lead through Lambert.
Morgan Schneiderlin’s superb right-footed cross to the far post was headed with gusto by the Saints striker, although Speroni reacted superbly to thwart the point-blank effort.
Palace’s defence-minded philosophy meant it took until the 29th minute for them to eke out their first opportunity, while Saints were denied at the other end when Jack Cork had a shot blocked.
However, Southampton did not have to wait long for a goal as De Ridder darted down the right flank and, having turned Peter Ramage inside out, drove in a cross for Do Prado to head home.
Palace came out of their shell as the first period came to an end, but were back defending after the break.
Only a last-gasp Patrick McCarthy block stopped Do Prado doubling his tally within two minutes of the restart, before Adam Lallana put a shot narrowly wide from just inside the area.
Palace’s tactics, though, were beginning to frustrate the home side and, after referee Graham Salisbury rejected an appeal for handball against Frazer Richardson, Murray forced Kelvin Davis into action.
The 2,786 visiting fans were in good voice on the south coast but were quietened as Do Prado headed in his second of the afternoon in the 77th minute, converting Richardson’s right-wing cross.
The Brazilian’s goal was Southampton’s 100th in league and cup matches against the Eagles, who could not find a consolation as the home side held out for a clean sheet.