Warner (93 not out) and Doolan (48 not out) took Australia to 147 for one in their second innings at tea, an overall lead of 338.
Johnson continued his devastating form of the recent Ashes series against England - and his superb opening spell on the second day - and finished with seven for 68 as South Africa were bowled out for 206 in reply to Australia's 397.
AB de Villiers made a sparkling 91 for South Africa before he was ninth man out.
Warner's first chance came on 26 when he hooked Vernon Philander to fine leg where substitute Dean Elgar dived but could not hold the ball.
He edged the next ball he faced, from Morne Morkel, high to second slip where a leaping Alviro Petersen could only get his fingertips to it. And, on 51, he was dropped in similar fashion by Graeme Smith at first slip when he slashed at Ryan McLaren.