Kagiso Rabada took two wickets in successive overs to send Sri Lanka plunging towards defeat on the third day of the second Test against South Africa at Newlands yesterday.
Set a massive 507 to win, Sri Lanka were 130 for four at the close.
Kaushal Silva and Dhananjaya de Silva defied the South African bowlers for more than an hour in a third wicket partnership of 41 before Rabada dismissed both batsmen in the space of seven balls.
Silva was caught off his glove at short leg off a ball which reared up at him. He made 29.
In the next over De Silva (22) was struck low down on his front pad by a full toss from Rabada.
Umpire Rod Tucker immediately gave him out leg before wicket and neither De Silva nor his batting partner, captain Angelo Mathews, thought it worth calling for a review. De Silva was almost back in the pavilion when replays showed the ball would have missed his leg stump.
Mathews and Dinesh Chandimal batted well during the last hour, putting on an unbeaten 61 for the fifth wicket.
But South Africa will expect to wrap up the game — and the three-match series — reasonably early on Thursday with Sri Lanka having only one recognised batsman to come, followed by a lengthy tail.
Rabada finished the day with two for 22, while Vernon Philander had two for 34.
South Africa declared their second innings on 224 for seven in mid-afternoon.
Opening batsman Dean Elgar hit a half-century to add to his first innings hundred, while fast bowler Suranga Lakmal restored some pride for the tourists, taking four for 69 and ensuring that South Africa did not bat with complete freedom as they sought to set up the declaration.
Elgar, who made 129 in the first innings, reached his fifty off 82 balls with seven fours but was out soon afterwards for 55, caught at slip off left-arm spinner Rangana Herath.
Faced with an almost impossible task, Sri Lanka got off to a poor start when Philander bowled Dimuth Karunaratne for six in the sixth over of the innings with a ball which swung back between bat and pad as the left-hander attempted to drive.
Kusal Mendis made four before he was out to a poor shot for the second time in the match, driving at a ball from Philander, which was well outside his off stump, to be caught at third slip.

South Africa 1st inns 392 all out
Sri Lanka 1st inns 110 all out
South Africa 2nd inns (o/n 35-0)

S. Cook c Karunaratne b Lakmal 30
D. Elgar c Mathews b Herath 55
H. Amla c Chandimal b Lakmal 0
J. Duminy lbw b Lakmal 30
F. du Plessis c Chandimal b Lakmal 41
T. Bavuma run out (De Silva) 0
Q. de Kock c Chandimal b Kumara 29
K. Maharaj not out 20
V. Philander not out 15
Extras (nb3, w1) 4
Total (7 wkts dec, 51.5 overs) 224
Fall of wickets: 1-64 (Cook), 2-64 (Amla), 3-110 (Elgar), 4-136 (Duminy), 5-137 (Bavuma), 6-170 (Du Plessis), 7-192 (De Kock)
Bowling: Lakmal 19.5-2-69-4, Pradeep 11-0-46-0 (1nb), Kumara 12-0-62-1 (1w), De Silva 3-0-15-0, Herath 6-0-32-1

Sri Lanka 2nd innings
D. Karunaratne b Philander 6
K. Silva c Cook b Rabada 29
K. Mendis c Elgar b Philander 4
D. de Silva lbw b Rabada 22
A. Mathews not out 29
D. Chandimal not out 28
Extras (b6, lb5, nb1) 12
Total (4 wkts, 40 overs) 130
Fall of wickets: 1-11 (Karunaratne), 2-25 (Mendis), 3-66 (Silva), 4-69 (De Silva)
Bowling: Abbott 10-3-23-0, Philander 10-1-34-2, Rabada 10-3-22-2, Maharaj 10-2-40-0