Cricket Australia (CA) on Thursday advised that Phil Hughes had been recalled to the 15-man squad to replace Marsh.
National selector John Inverarity said: "As Shaun Marsh's calf injury has not improved as much as required over the past four days, he has been withdrawn from the Test squad ...
"Phillip Hughes had been placed on standby and now comes into the Test squad as a replacement for Shaun. Phillip will head to South Africa as soon as possible."
Flight details are yet to be confirmed for Hughes who was initially overlooked for selection.
Marsh injured his calf in the Australian ODI win over England and the left-hander had been in Perth receiving treatment.
Earlier on Thursday, fast bowler Jackson Bird was a confirmed starter for the three-Test tour starting on February 12.
Bird will fly to South Africa on Friday alongside Moises Henriques, after successfully proving he's recovered from jarring his back in a Big Bash League game last week.
The Tasmanian quick was held back to see if he could get through back-to-back days of net bowling before being given the green light to tour and provide back-up for Australia's Ashes-winning attack.
Bird was put through his paces in the nets in Hobart on Wednesday, under the supervision of Australian coach Darren Lehmann and national selection panel member Rod Marsh.
The 27-year-old returned home early from last year's Ashes tour of the UK with a back problem and, as a precaution, he was pulled out of a scheduled second XI game on Monday and his flight to South Africa delayed.