South African fast bowler Dale Steyn took three wickets to plunge Sri Lanka into deep trouble on the third day of the third and final Test at Newlands on Thursday.
Sri Lanka were 219 for seven at lunch, still 361 runs behind South Africa's first innings total of 580 for four declared.
Steyn dismissed Kumar Sangkkara, Mahela Jayawardene and Angelo Mathews as Sri Lanka slumped from their overnight 149 for two, adding only 70 runs for the loss of five wickets, despite a flurry of scoring by Dinesh Chandimal, who was unbeaten on 25.
Steyn had figures of three for 56, with his three wickets during the morning costing 16 runs in eight overs.
The other wickets fell to Vernon Philander, who had Thilan Samaraweera caught at second slip during a testing spell of one for three in six overs, and leg-spinner Imran Tahir, who bowled Thisara Perera with the last ball of the morning.
Steyn struck with the third ball of the day when Kumar Sangakkara sliced a drive to point without adding to his overnight score of 35.
Jayawardene and Samaraweera stayed together for more than an hour before Philander accounted for Samaraweera.
Steyn came back for a second spell and had Jayawardene caught at second slip with his third ball and Mathews caught behind in his next over. - ANP/AFP