Australia made a steady start to their second innings against South Africa in the third Test, but on 102 for two wickets at the close were still 340 runs behind with two days to play.
|Ricky Ponting reacts after a costly dismissal [AFP]
At the wicket were opener Simon Katich on 44 and Michael Hussey on 13.
The touring side face a tough battle to make South Africa bat again in Cape Town, having gone 442 runs behind in the first innings earlier in the day.
Australia started briskly in their second innings with Katich and Phillip Hughes adding 57 for the first wicket in 57 minutes.
Hughes' 32 included four fours, while Katich, top-scorer in the first innings with 55, had hit three fours and a six in his 150-minute knock of 44.
Hughes fell to Paul Harris, the second time in the match the spinner had taken the opener's wicket in his first over of the innings.
This time Hughes edged Harris third ball to Jacques Kallis at slip.
Aussie captain Ricky Ponting (12) went caught behind for the second time in the match, this time off Dale Steyn. Three balls earlier Harris had claimed a catch off Ponting low down in the gully, but TV umpire Billy Bowden ruled it not out.
Earlier, South Africa unleashed an assault on Australia's bowling attack to extend their first-innings lead to 442 runs.
The Proteas were dismissed for 651 at tea on the third day at Newlands on Saturday, with De Villiers becoming the third century-maker in their first innings.
De Villiers was in a belligerent mood after reaching his second hundred of the series following his 104 in the 1st Test, hitting 25 runs in one over off seamer Andrew McDonald, including four leg-side sixes off the first four balls on his way to scoring 163.
The world record for a Test over is 28 runs, scored by former West Indian batsman Brian Lara off South African spinner Robin Peterson at the Wanderers in 2004.
De Villiers smashed seven sixes, a South African record, and 12 fours. He was eventually caught by McDonald on the midwicket boundary after facing 196 balls in making his ninth century in Tests.
South Africa's other century-makers were Ashwell Prince (150) and Kallis (102).
De Villiers also guided South Africa to their highest score at Newlands, beating their 620 against Pakistan in January 2003.
On that occasion, Herschelle Gibbs (228) and Graeme Smith (151) added 368 for the first wicket.
No gain McGain
On Saturday, Australia took the last seven wickets for 247 runs.
Australia first innings 209 (S Katich 55)
South Africa first innings
I Khan c and b Siddle 20
A Prince c Haddin b Hilfenhaus 150
H Amla c Haddin b Johnson 46
J Kallis c and b Hilfenhaus 102
AB de Villiers c McDonald b Katich 163
J Duminy b Johnson 7
M Boucher c Ponting b Johnson 12
A Morkel b McDonald 58
P Harris c Haddin b Johnson 27
D Steyn c Clarke b Katich 0
M Ntini not out 4
Total (all out; 154.3 overs) 651
Fall of wickets: 1-65 2-162 3-322 4-415 5-443 6-467 7-591 8-637 9-637
Australia second innings
P Hughes c Kallis b Harris 32
S Katich not out 44
R Ponting c Boucher b Steyn 12
M Hussey not out 13
Fall of wickets: 1-57 2-76
Ponting surprisingly persisted with hapless legspinner Bryce McGain.
De Villiers and Albie Morkel, who added 124 runs at six runs per over, punished the debutant severely all around the field for McGain to concede 149 runs in 18 overs.
When Ponting turned to Katich near the end of the innings, the left-arm wrist spinner grabbed 2-9 to help hasten the end.
The best bowler for the visitors was paceman Mitchell Johnson, who claimed 4-148.
Australia, who scored a disappointing 209 in their first innings, are leading 2-0 in the three-match series.
De Villiers and Kallis put on 93 for the fourth wicket in 21.2 overs before the latter chipped a return catch to Ben Hilfenhaus in the third over of the day.
Kallis did not add to his overnight 102, which included 14 fours and two sixes in a 163-ball effort.
Duminy went for 7 nine overs later, pulling a short ball from Johnson on to his stumps, while wicketkeeper Mark Boucher was out attempting a drive off Johnson to edge the ball to Ponting at second slip.