South Africa were bowled out for 326 on Monday, a lead of 241 runs over Australia, on the third day of the second Test in Hobart.
Paceman Josh Hazlewood finished with six wickets for 89 as the Proteas lost four wickets after lunch with Temba Bavuma out for 74.
The home team, who were skittled for 85 on Saturday, now face a crucial second innings to save the Test and prevent South Africa from winning their third successive Test series in Australia.
Earlier, Quinton de Kock plundered a century on Monday as South Africa frustrated Australia to tighten their grip on the second Test as the sun emerged on the third day in Hobart.
After Sunday’s second day was washed out, the Australians were hunting for early wickets to put a brake on the Proteas after they were routed for a record low total of 85 on Saturday.
But de Kock and Temba Bavuma batted South Africa into a position of strength with a century stand for the sixth wicket and a 203-run lead to put even more pressure on Steve Smith’s embattled team.
Wicketkeeper de Kock was bowled by Josh Hazlewood just before lunch for 104 — his second Test hundred — off 143 balls with 17 boundaries.
His stand of 144 with Temba Bavuma was the highest by a visiting team in Hobart for the sixth wicket.
At lunch, the Proteas were 288 for six with Bavuma unbeaten on 74 and Vernon Philander on three.
De Kock became only the fourth South African to register 50 or more in five consecutive Tests after he swept spinner Nathan Lyon for four over wide mid-on.
He has proved a thorn for Australia in this series following scores of 84 and 64 in the first Test victory in Perth.
Bavuma, who raised his fifth Test half-century with an edge off Hazlewood through the gully, had his second Test century in sight.