AB de Villiers scored his 22nd Test century and stretched South Africa's overnight lead to 139 to dominate the Australians.
De Villiers made a magnificent 126 not out and took South Africa to a likely series-levelling position as South Africa finished at 382.
Kagiso Rabada then struck thrice to reduce Australia to 180 for five at the close, a slender lead of 41 with only five wickets remaining.
Australia 243 and 180 for 5 (Khawaja 75, Rabada 3-38) lead South Africa 382 (De Villiers 126*, Elgar 57, Amla 56, Cummins 3-79) by 41 runs.
Matches Tagged in ClipDex2018 RSA v AUS 2nd Test
Series Tagged in ClipDex2018 RSA v AUS Test serie ...
Players Tagged in ClipDexKhawaja, Usman Tariq Marsh, Mitchell R Rabada, Kagiso Warner, David de Villiers, Abraham B Marsh, Shaun Maharaj, Keshav A Philander, Vernon D
Grounds Tagged in ClipDexSt George's Park
Categories Tagged in ClipDexTest Matches