Australia closed the day 479 runs ahead of their hosts at 288 for three in their second innings, a massive lead with two days still to play.
Warner was dropped three times in a characteristically cavalier 115 off 151 balls and featured in a partnership of 205 runs for the second wicket with Alex Doolan.
Asked by reporters if he had ever had so many let-offs, Warner said: "Probably in the backyard cricket really it's good have a little luck on your side.
"It was a hard wicket to play defensively on, so I felt it was better to play aggressively," Warner added.
Doolan fell 11 runs short of a debut Test century, caught behind by wicketkeeper AB de Villiers off part-time spinner JP Duminy in the last hour of the day.
Shaun Marsh (44) and Michael Clarke (17) will resume on the fourth day as Australia dominated again following a seven-wicket haul for Johnson who helped bowl out South Africa for 206 in their first innings before lunch.
South Africa paid a heavy price for dropping Warner when he was on 27 when substitute fielder Dean Elgar spilled a high one in the deep and when two wild slashes provided top edges for the slips that Alviro Petersen and Graeme Smith got hands to but could not hold.
Warner and Doolan, whose 89 runs came off 154 balls, piled on the agony for the top-ranked Test side, whose ordinary bowling was matched by uncharacteristically sloppy fielding.
Earlier, Johnson scythed through the batting order as he took three more wickets on the third day to end with a figures of seven for 68.
Only De Villiers provided any resistance with a defiant 91 that ensured the follow-on target was passed but South Africa's hopes of batting on to lunch ended as he was caught trying to blast a slower ball from Johnson back over the bowler's head.
"We are certainly not going to give up," De Villiers told reporters.
"Obviously we are in trouble. There has been only one team in this match and it hasn't been us.
"We know the declaration cannot be too far away and if we can get through the new ball, then it does get notably easier. We are going to need a big fight tomorrow and on day five," he added.
South Africa made an early breakthrough with the wicket of opener Chris Rogers (1) in the second over as he was bowled by Dale Steyn but after that were put to the sword by Warner and Doolan.
Warner was the second wicket to fall 205 runs later when his swashbuckling knock ended tamely with a catch at first slip off spinner Peterson.
Image: David Warner
Photograph: Morne de Klerk/Getty Images
How the teams measure up after the IPL 7 auction
Check out the team line-ups for IPL 2014
U-19 World Cup: England, SL, SA, Zimbabwe win on opening day
Marsh leads middle-order recovery for Australia
Fiery Johnson rips through South Africa's top order