Warner's 115 off 151 balls with 13 fours and two sixes was almost as blisteringly quick as Johnson's bowling as Australia raced to 288-3 in their second innings at stumps on the third day for a huge lead of 479.
After Johnson ripped out the remains of South Africa to reduce the top-ranked team to 206 in its first innings, Warner and Alex Doolan (89) dominated with the bat in a 205-run partnership in the afternoon -- Australia's second double-century stand of the game.
Warner was dropped three times -- and twice in the 20s -- to compound South Africa's problems as their fielding unraveled along with its bowling and batting.
After South Africa were 140-6 overnight, Johnson continued the carnage with three wickets in the morning to go with his four on the second day, with the home team rolled out for 206.
More From This Section
As he was yesterday, Johnson was hostile as he removed Robin Peterson, A B de Villiers and last-man Morne Morkel.
De Villiers made 91 for South Africa's only major contribution as it added 66 on the day for the last four wickets.
Australia lost opener Chris Rogers to speedster Dale Steyn in the second over of its second innings to be 1-1 and 18-1 at lunch, but the tourists surged way ahead after that minor blip through Warner's and Doolan's punishing partnership.