Johannesburg - South Africa are firmly in control of the fourth and final Test at the Wanderers and will almost certainly beat Australia in a home series for the first time since re-admission.
The story of day two was Temba Bavuma, who came agonisingly close to his second Test century only to be left stranded five runs short.
Vernon Philander, meanwhile, was the pick of the South African bowlers, finishing the day with figures of 3/17 in 12 to leave him on 198 Test scalps.
At stumps on day two, Australia were all at sea at 110/6, still a massive 378 behind South Africa in their first innings.
SCORECARD: Proteas v Australia - 4th Test, Day 2
Bavuma, who had resumed overnight on 25*, scored just one run in the first hour of play but found his rhythm before lunch and never looked back.
He waited for the bad balls and put them away, while defensively he looked untroubled for the most part.
It is an innings that will mean a lot to Bavuma, who has had to be patient for another chance to represent his country.
Bavuma was the man left out to accommodate the return of AB de Villiers at the start of the India series, while a hand injury then ruled him out of contention for the start of Australia's visit.
The 27-year-old returned to the side in last week's third Test in Cape Town, but he looked undercooked and carded scores of 1 and 5.
When the Proteas were eventually dismissed for 488, Bavuma was 95* (194b, 13x4).
South Africa put on six partnerships of more than 50 runs in their innings and scored more than 400 for the first time since October last year against Bangladesh.
Quinton de Kock was out for 39 in the morning session to Nathan Lyon, while Philander (12) also fell victim to the Australian off-spinner when he tried and failed to clear the ropes on the on side.
That brought Keshav Maharaj to the crease.
Often guilty of batting irresponsibly when the match situation asks for more, Maharaj tried to be more cautious but ended up gaining momentum as he blasted his way to 45 off 51.
He went out chasing a wide one from Pat Cummins (5/83) and could not see Bavuma over the line.
Morne Morkel lasted just one ball as Bavuma threw his head towards the sky in disbelief.
It was a devastating end for Bavuma, but he had helped take the Proteas to a commanding lead.
Tea was called at the change of innings, and the Aussies had one long session to bat out.
With David Warner, Cameron Bancroft and Steve Smith all back home, the Aussies had a new-look top order.
Matt Renshaw, Joe Burns and Peter Handscomb were the men who came in for the banned trio, but they were all back in the hut for a combined 12 runs.
Kagiso Rabada (1/24) got the initial breakthrough when Faf du Plessis took a neat catch at second slip to remove Burns (4) before Philander got in on the act.
‘Big Vern’ has bowled well all series without too much reward, but he had two in two balls when he got Renshaw (8) caught behind before bowling Peter Handscomb for a first-ball duck as the Aussie No 4 tried to leave, but played on to his stumps.
That wobble left Australia at 38/3, and there seemed no way back.
Usman Khawaja and Shaun Marsh, though, finally offered some resistance.
The pair put on a 52-run stand with Khawaja recording his 12th Test half-century in the process but Philander struck again in his second spell when he had Khawaja caught by De Kock, who was standing up to the wickets, down the leg side.
It was a superb catch from the Proteas wicket-keeper, who continues to impress with the gloves.
The Wanderers crowd were mid-national anthem when Morkel (1/23), in his final Test match, had Mitch Marsh out for 4 as the Aussie allrounder chopped on.
It got even worse for the visitors in the very next over when Maharaj (1/35) had Shaun Marsh (16) caught by AB de Villiers at first slip.
Australia, of course, are 2-1 down in the series.
Captain Tim Paine (5*) and Pat Cummins (7*) will resume for the visitors on Sunday.