Cape Town: South Africa need only six more wickets to clinch their three-test series against Sri Lanka after forcing the visitors to follow on on the third day of the third test at Newlands on Thursday.
At the close Sri Lanka were 138 for four in their second innings, still trailing by 203 runs.
South Africa captain Graeme Smith, who declared his team's innings closed at 580 for four on Wednesday, enforced the follow-on after Sri Lanka lost their last three wickets for 20 runs in the half hour after lunch.
Dale Steyn bowled with great intensity and control before the interval to give his team a firm grip on the test, adhering to a wonderful line just outside off stump and moving the ball away at high pace.
Steyn started the rot when he removed Kumar Sangakkara, who drove lazily to Hashim Amla at point, for 35 with the third ball of the day.
Vernon Philander, who could have taken more wickets with a bit more luck, then found the edge of Thilan Samaraweera's bat as the veteran prodded at another fine delivery that nipped away from back of alength outside the off stump. Jacques Kallis took a low catch at second slip and Samaraweera was out for 11.
Steyn, who did not stray from his exemplary line all morning, then returned half an hour before lunch and Mahela Jayawardene (30) was not able to resist pushing firmly at a delivery outside off stump, edging another catch to Kallis at second slip.
Angelo Mathews did not trouble Steyn for long, making just a single before he dabbed at an away-swinger and wicketkeeper Mark Boucher took a good catch diving forward.
Spinner Imran Tahir then pushed a big-turning leg-break through Thisara Perera's defences to bowl him for five with what became the last ball before lunch.
After being asked to follow on 341 runs behind, under cloudless skies on a mostly even pitch, Sri Lanka lost regular wickets.
Their only partnership of note was a 67-run second-wicket stand between Lahiru Thirimanne and Sangakkara.
Kallis, who had scored 224 to provide the foundation of South Africa's massive first-innings total, eventually removed Thirimanne for 30 in an aggressive spell after tea.
The left-handed opener edged a lifter on to his thigh pad, from where the ball ricocheted to short-leg, where Amla clasping a fine reflex catch above his head.
Tahir then piled on the pressure with an impressive spell around the wicket into the rough outside the left-handed Sangakkara's off-stump and the former captain eventually edged a back-foot defensive stroke to Kallis at slip.
Sangakkara had held up the South Africans for a little over two hours in scoring 34.
Kallis then took a thrilling catch, diving low in front of first slip, to remove Mahela Jayawardene for 12 off the bowling of Morne Morkel.
Mathews went confidently to 28 not out by the close, striking three fours off 38 balls
South Africa won the first match of the series at Centurion by an innings and 81 runs and Sri Lanka triumphed by 208 runs in the second test in Durban.