South Africa were bowled out for 206 in reply to Australia's 397, before the tourists reached 18 for one in their second innings at lunch, an overall lead of 209.
AB de Villiers made a sparkling 91 for South Africa before he was the ninth man out.
Johnson struck with his fourth ball of the day when Robin Peterson fended a sharply lifting delivery to Michael Clarke moving to his left from second slip.
Umpire Richard Illingworth gave Philander not out but the Australians successfully sought a review which showed the ball was hitting the stumps.
De Villiers was the only batsman to play Johnson with any comfort and he slammed the big left-arm fast bowler through the covers for four as he sought quick runs before the innings ended.
But he lofted the next ball to mid-off to end a 148-ball innings which included 10 fours and two sixes.