Cape Town: Vernon Philander and Kagiso Rabada claimed four wickets each as South Africa ripped out Sri Lanka for 110 on the second day of the second Test at Newlands on Tuesday.
South Africa did not enforce the follow-on and were 35 without loss at the close, 317 runs ahead and in a powerful position to claim the victory they need to clinch the series.
Sri Lanka collapsed after going to tea on 56 for two with Rabada making a decisive breakthrough at the start of the final session when he had Dimuth Karunaratne brilliantly caught at point by Temba Bavuma for 24.
A steady procession of wickets followed as captain Angelo Mathews and his deputy Dinesh Chandimal went cheaply after rash shots to Rabada's persistent pace barrage. The tall seamer had snared Kaushal Silva before tea and finished with figures of 4-37.
Spinner Keshav Maharaj added the valuable wicket of Dhananjaya de Silva lbw for 16 before Philander mopped up the tail.
He had Rangana Herath trapped in front and Suranga Lakmal caught in the slips, seeing Dean Elgar parry the ball into the air and Hashim Amla take the catch. It was Philander's 150th Test wicket.
Lahiru Kumara was bowled and Philander dismissed Nuwan Prapeed with the next ball so the fast bowler will start on a hat-trick when Sri Lanka bat again. Upul Tharanga finished unbeaten on 26.
South Africa were all out before lunch with Quinton de Kock scoring 101 and teenager Kumara claiming six wickets for Sri Lanka in a career-best performance.
De Kock, 68 not out overnight, drove the first ball of the day for four and brought up his century off 122 balls, an instinctive innings full of quality shots.
Kumara, brought in to strengthen the Sri Lanka attack after their defeat in the first test, claimed a first five-wicket haul in tests and finished with figures of 6-122.
But it was a long spell in the field for Sri Lanka with South Africa's tail-enders adding 95 runs after resuming on 297 for six and the toil seemed to have some effect on their lethargic batting performance.
Stephen Cook (15 not out) and Dean Elgar (19 not out) will resume for South Africa on Wednesday with the home team bidding to wrap up the three-match series after victory in the first test in Port Elizabeth. - Reuters
South Africa 1st innings:
S. Cook c Mendis b Lakmal 0
D. Elgar c Mendis b Lakmal 129
H. Amla b Kumara 29
J. Duminy c Mendis b Kumara 0
F. du Plessis c Mathews b Herath 38
T. Bavuma c Tharanga b Kumara 10
Q. de Kock c Chandimal b Kumara 101
K. Abbott c Chandimal b Herath 16
V. Philander c Chandimal b Kumara 20
K. Maharaj not out 32
K Rabada c Chandimal b Kumara 8
Extras (lb-3, nb-1, w-5) 9
Total (116 overs) 392
Fall of wickets: 1-0, 2-66, 3-66, 4-142, 5-169, 6-272, 7-303, 8-336, 9-376, 10-392
Bowling: Lakmal 27-4-93-2, Pradeep 15.4-3-46-0, Mathews 17-3-41-0 (1w), Kumara 25-1-122-6 (1nb, 4w), Herath 23.2-4-57-2, De Silva 8-0-30-0
Sri Lanka 1st innings:
D. Karunaratne c Bavuma b Rabada 24
K. Silva b Rabada 11
K. Mendis c Duminy b Maharaj 11
D. de Silva lbw b Maharaj 16
A. Mathews c Du Plessis b Rabada 2
D. Chandimal c De Kock b Rabada 4
U. Tharanga not out 26
R. Herath lbw b Philander 1
S. Lakmal c Amla b Philander 0
L. Kumara b Philander 4
N. Pradeep c Du Plessis b Philander 0
Extras (lb-5, nb-1, w-5) 11
Total (all out, 43 overs) 110
Fall of wickets: 1-31, 2-56, 3-56, 4-60, 5-78, 6-78, 7-100, 8-100, 9-110, 10-110
Bowling: Philander 12-4-27-4 (1nb), Abbott 8-3-9-0, Rabada 12-2-37-4 (1w), Maharaj 11-1-32-2
South Africa 2nd innings:
S. Cook not out 15
D. Elgar not out 19
Extras (w-1) 1
Total (for no loss, 11 overs) 35
To bat: H. Amla, J. Duminy, F. du Plessis, T. Bavuma, Q. de Kock, V. Philander, K. Maharaj, K. Abbott, K. Rabada
Bowling: S. Lakmal 5-1-16-0, N. Pradeep 2-0-5-0, L. Kumara 4-0-14-0 (w-1)
Umpires: Aleem Dar and Rod Tucker
TV umpire: Bruce Oxenford
Match referee: David Boon