South Africa fought back on the third day of the first Test but could not stop Australia from taking their lead beyond 400 at Kingsmead on Saturday.
Australia were 213 for nine when bad light stopped play, an overall lead of 402.
South Africa will be faced with a daunting task when they eventually get to bat on Sunday on a slow pitch on which batsmen have struggled to play with freedom.
But the hosts could take heart from a fighting, disciplined performance after Australia made a sparkling start to their second innings.
Cameron Bancroft (53) and David Warner (28) put on 56 in 13 overs for the first wicket and Australia seemed to be racing to an unassailable position. The run rate remained brisk as Australia reached 112 for three at lunch.
The scoring dried up after lunch, however, and Australia lost six more wickets while eking out another 101 runs in 44.4 overs before the umpires took the players off the field.
Kagiso Rabada bowled with pace and hostility and was unlucky not to claim more than the two wickets he took for 28 runs.
Bancroft and Warner attacked left-arm spinner Keshav Maharaj when he started to bowl on Saturday, scoring 20 runs off his first two overs. But Maharaj settled down and again bowled the most overs for South Africa, taking three for 93 in 28 overs.
Fast bowler Morne Morkel, who did not bowl between lunch and tea after bowling poorly in the morning, came back strongly in late afternoon and finished with three for 42.
Bancroft made his first fifty since he hit 82 not out on debut against England in Brisbane in November.
He was struck by a hostile lifting delivery from Morkel in a testing first over when Australia started their second innings with a comfortable 189-run first innings lead. But he went on to make an impressive 53 off 83 balls with ten fours before he was stumped off Maharaj.
Australian captain Steve Smith scored 38 but was unable to bat with fluency in an 81-ball innings before he was trapped leg before wicket by part-time left-arm spinner Dean Elgar.
Shaun Marsh laboured for 99 balls to make 33, twice surviving South African reviews for leg before wicket, the first, off a ball from Maharaj, where the decision stayed with the "umpire`s call" and then from a delivery from Rabada which had pitched outside leg stump
Rabada had first innings top-scorer Mitchell Marsh caught by Hashim Amla at first slip for six. It was Amla`s 100th catch in 114 Tests. He added another shortly before play was called off when he caught Nathan Lyon off Morkel.
A crowd of 6118 watched Saturday`s play, an improvement on the first two days but disappointing for a weekend.