South Africa moved into a strong position to win the third Test and level the series after England, chasing an unlikely 466 to win, were reduced to 132 for three at the close on the fourth day at Newlands on Wednesday.
England openers Andrew Strauss and Alastair Cook put on a century opening stand before Friedel de Wet, left-arm spinner Paul Harris and Dale Steyn claimed a wicket apiece in the final session.
Cook looked in fine form as he scored a fluent 55, but De Wet removed the left-hander with his third ball of his second spell. Cook lashed out at a delivery outside off stump, his attempted pull shot merely skying the ball and allowing wicketkeeper Mark Boucher to take an easy catch.
Three overs later, Strauss was out for 45, caught at short-leg off Harris, and South Africa were on the charge.
Kevin Pietersen came in and showed aggressive intent, but had only added six runs to the scorecard when Steyn, using reverse-swing, trapped him leg-before with a fullish delivery which the batsman tried to drive on the leg side.
Seamer Graham Onions eventually provided the solution to England's biggest problem in the second innings with a bouncer that Smith top-edged to Paul Collingwood at fine leg.
The tourists also managed to remove Jacques Kallis in the morning session, South Africa's leading run-scorer viciously lashing out at an Anderson delivery but managing only to edge a catch to Prior.
Scorecard
South Africa (1st innings): 291 (J. Kallis 108, M. Boucher 51; J. Anderson 5-63)
England (1st innings): 273 (A. Cook 65, M. Prior 76; M. Morkel 5-75)
South Africa (2nd innings): (overnight 312-2)
A. Prince lbw b Swann 15
G. Smith c Collingwood b Onions 183
H. Amla c Cook b Swann 95
J. Kallis c Prior b Anderson 46
A. de Villiers c Broad b Anderson 34
J-P. Duminy c Prior b Anderson 36
M. Boucher c Bell b Swann 15
D. Steyn not out 1
Extras: (lb-7, b-8, nb-2, pen-5) 22
Total: (seven wickets declared, 111.2 overs) 447
Fall of wickets: 1-31, 2-261, 3-346, 4-376, 5-401, 6-442, 7-447
Did not bat: M. Morkel, P. Harris, F. de Wet
Bowling: Anderson 22.2-1-98-3, Onions 22-4-87-1 (nb-2), Swann 37-5-127-3, Broad 22-4-79-0, Pietersen 3-0-6-0, Trott 5-0-30-0.
England (2nd innings):
A. Strauss c Amla b Harris 45
A. Cook c Boucher b de Wet 55
J. Trott not out 24
K. Pietersen lbw b Steyn 6
J. Anderson not out 0
Extras: (b-1, lb-1) 2
Total: (three wickets, 51 overs) 132
Fall of wickets: 1-101, 2-107, 3-129
To bat: P. Collingwood, I. Bell, M. Prior, S. Broad, G. Swann, G. Onions.
Bowling: Morkel 12-3-26-0, Steyn 14-3-30-1, De Wet 8-4-19-1, Harris 13-2-43-1, Kallis 4-1-12-0
Swann and Broad bowl England to innings win
Smith and Amla put South Africa in control
Kallis leads South Africa's fightback
Indian youth killed in Melbourne
Swann and Broad leave South Africa reeling