(CNN) -- Andrew McDonald claimed three wickets in the final session to ensure Australia maintained a firm grip on the second Test against South Africa in Durban with the hosts reaching stumps at 138 for seven.
McDonald (center) celebrates the wicket of Morne Morkel as Australia continue to dominate in Durban.
Paul Harris, Jacques Kallis and Morne Morkel were all victims of the all-rounder's medium pace, which followed Mitchell Johnson's earlier burst that reduced the home side to none for two in the first over of their innings.
The Australian paceman was also responsible for injuring Graeme Smith and then Kallis with two brutal deliveries that forced the pair to retire as the home side saw their morning efforts -- claiming the visitors' last six wickets for just 23 runs to bowl them out for 352 -- thrown out the window.
In the end JP Duminy was left to carry South African hopes with his unbeaten 73 helping them reduce the deficit to 214, still 15 runs short of avoiding the follow-on.
Resuming after tea with the score at 62 for four, Duminy reached his half-century from 88 balls when playing Peter Siddle through the gully region for four, before McDonald snared Harris with a good delivery that jagged back to bowl the batsman for four.
Two balls later he dismissed Kallis, who returned to bat after x-rays revealed no serious damage to his jaw, which was hit by a Johnson delivery. The South African all-rounder chipped a tame delivery on leg stump straight to Ricky Ponting at short midwicket for 22.
McDonald then cleaned up Morkel for a duck as the home side slumped to 106 for seven, before Dale Steyn (eight not out) and Duminy took the hosts to the close without further damage.
Before the tea break, Johnson was the star as his double strike at the start of the South African response left them none for two after just five balls.
The paceman removed Neil McKenzie and Hashim Amla for ducks, before dishing out injuries to Smith and Kallis -- the former more serious as his broken little finger on his right hand will rule him out for the next Test.
McKenzie was first out when he found a short delivery outside off stump too hard to resist and got a fine edge to Brad Haddin, with Amla next to follow courtesy of a fine inswinging delivery that trapped him leg before wicket.
AB de Villiers was next to go when Ben Hilfenhaus managed to get a good length delivery to cut back sharply, trapping the batsman lbw for three as the hosts slumped to six for three.
But Duminy and Kallis then consolidated, bringing up the 50-run stand in just under 18 overs, before the South African all-rounder was knocked down with a bloody chin after being struck by Johnson.
He had to go off for 22 leaving the home side in a desperate position, which only got worse when tea was called after Mark Boucher was cleaned up by the same bowler when he was yorked for one.