South Africa pace leader Dale Steyn struck a second-over blow against Australia as he attempted to lead the recovery from his team's 191-run first-innings deficit.
Australia opener Chris Rogers played onto his stumps for one when attempting to defend Steyn's first delivery with the new ball, which forced him onto his back foot.
Debutant Alex Doolan, called to the crease even earlier than in the first innings, defended and left solidly to survive the 21 deliveries he faced before the break.
At lunch Australia was 1-18, leading by 209 runs with David Warner on 12 and Doolan on 3.
Australia was batting before lunch because South Africa was only able to extend its innings by another 18 overs on day three. That was long enough for it to deny Australia the option of enforcing the follow-on.
Australia hefty advantage was delivered primarily because of Mitch Johnson's seven-wicket haul, his second in the past five Tests. The left-armer claimed three wickets on day three, which included denying A.B. de Villiers what would have been a deserved century, to dismiss the Proteas for 206 about 40 minutes before lunch.
South Africa was unable to add to its overnight score of 7-140 before Johnson, with his fourth ball of the day, bounced out yet another of its batsman. That victim was left-hander Robin Peterson, who was helpless against a ball aimed at his sternum from around the wicket, lobbing a catch to Michael Clarke in the slips cordon to depart for 12.
His wicket brought Vernon Philander to the crease to join de Villiers. The paceman batted competently, even against the pace of Johnson, and proved a handy ally for the Proteas' vice-captain.
As exceptionally good as Johnson was with the ball de Villiers was not far behind with the bat, justifying Johnson's warning the night before that while de Villiers was still at the crease the Proteas must not be underestimated, irrespective of how many wickets down they were.
Having resumed on 52 de Villiers took the lead in the eighth-wicket partnership with Philander. Even Johnson was not immune to punishment from his strong driving between point and straight hit.
Ryan Harris is ranked only behind Philander and Steyn among Test bowlers but he was handled with ease by de Villiers. This included the Proteas batsman sending two of the Australia's first three deliveries of the day to the boundary.
De Villiers and Philander were on the cusp of reaching their half-century partnership when Lyon produced his second scalp of the innings. The off-spinner's leg-before shout against Philander was rejected by umpire Richard Illingworth, but Clarke made his second canny referral of the innings, after Peter Siddle's against Hashim Amla the previous day.
The Hawk Eye verdict was that the ball not only pitched in line with the stumps but would have clearly struck leg-stump, which sent Philander on his way for 15 and ended his partnership with de Villiers on 49.
The strife that Proteas were in was reflected by the loud cheers for Steyn when he hit the single that took the score to 198 to ensure it would be Australia batting again next.
De Villiers moved into the 90s by gloriously driving Johnson to the extra-cover boundary. From the next ball de Villiers paid for his first clear error of his 148-ball innings. He attempted to lift Johnson to long-off but was unable to get the ball over Peter Siddle, who successfully stretched overhead at mid-off to take the catch.
After Johnson's next ball South Africa's innings was over, with Morkel feathering a catch behind off the back foot for a duck.
Rogers' departure for one emboldened the Proteas' supporters, but Steyn nor fellow seamers Philander and Ryan McLaren were able to make another breakthrough across the next five overs Warner and Doolan had to face before lunch.