Australia were 31 for no wicket at lunch.
Hashim Amla completed his 21st Test century - and his fifth against Australia - and finished on 127 not out when captain Graeme Smith declared at 270 for five.
South Africa added 78 runs in 17 overs on Sunday. Quinton de Kock (34) was the only batsman dismissed.
Australia were left to see out 71 overs on the fourth day and another potential 90 on Monday - but rain is forecast for the final day.
Also Read
Australia won the first Test in Centurion by 281 runs.
Amla, who was 93 not out overnight, hit 16 boundaries in a 176-ball innings.
His tally of five hundreds against Australia equalled a South African record shared by Eddie Barlow, Graeme Pollock, Jacques Kallis and AB de Villiers.