Australia were finally bowled out by South Africa for 550 runs minutes before lunch on day two of the second Test.
The hosts ran riot on the opening day but were pegged back by Morne Morkel's first five-wicket haul against the Aussies.
Michael Clarke added six runs to his overnight score of 224 before being dismissed by Morkel, who quickly had Matthew Wade caught behind for six just three overs later.
Rory Kleinveldt claimed his first Test wicket when Peter Siddle was caught at slip minutes later to leave Australia all out with an impressive haul of 550.
South Africa were forced to bat four overs before lunch, claiming three runs without loss.