South Africa had the upper hand after removing Australian captain Steve Smith in the second session, which ended with the visitors on 170-4.
Having broken the 50-run partnership between David Warner and Smith just before lunch, the Australians started from scratch in the second session when the left-hander walked out to the middle.
While Shaun Marsh was playing patiently, it was business as usual for Smith, who continued where he left off at the other end, playing a number of expansive shots off Proteas seamer Kagiso Rabada as they kept the scoreboard ticking over.
Playing smart cricket, Smith reached his 24th Test half-century when he took a single off Keshav Maharaj. The partnership was soon also worth 50 runs.
Rabada looked to have found a way through and had a good lbw shout when a yorker hit Marsh on the pads. The decision went in the Australian’s favour, but had South Africa taken a review, Rabada could have claimed his second wicket.
But Smith was soon on his way for 56 when he edged Maharaj and was caught by AB de Villiers after the ball had bounced off Quinton de Kock.
Smith’s wicket saw Mitchell Marsh come to the middle, and the two brothers proceeded to score off the Proteas bowlers.
The younger of the Marsh brothers brought up his 1,000th Test run when he edged a Rabada delivery for four. As the game went on, it was Maharaj who was bowling the bulk of the Proteas overs.
With the clouds coming over Durban, the second session ended with the visitors on 170-4, the Marsh brothers having put on 19 runs for the fifth wicket.