Left-arm opening bowler Chanaka Welegedera produced a career-best performance to put Sri Lanka in the ascendancy on the second day of the second Test match against South Africa at Kingsmead on Tuesday.
Welegedera took five for 52 as South Africa were bowled out for 168 on a good batting pitch, giving Sri Lanka a first innings lead of 170.
It also gave Sri Lanka hope of gaining their first Test win of the year, in a complete turnaround from the first Test at Centurion, which South Africa won by an innings and 81 runs.
Sri Lanka were seven for one in their second innings at the close, with captain Tillekeratne Dilshan falling to Dale Steyn before bad light stopped play.
Welegedera, whose previous best Test figures were five for 87 against Pakistan in Sharjah last month, bowled an impeccable line, slanting the ball across the right-handed batsmen, with all of his victims caught behind or in the slips.
Left-arm spinner Rangana Herath took four for 49 as South Africa crashed to their lowest total against Sri Lanka.
The tourists were earlier bowled out for 338. Thilan Samaraweera made a century and Marchant de Lange took seven wickets on his debut.
De Lange's figures of seven for 81 were the best recorded by any bowler in Test matches in 2011 and put him at the top of an extraordinary crop of eight bowlers who have taken five or more wickets in an innings in their first Test match this year. The best figures by a South African debutant are eight for 64 by Lance Klusener against India in Kolkata in 1996-97.
South Africa reached 22 for no wicket without Graeme Smith and Jacques Rudolph looking in any trouble before Rudolph played a loose hook against Thisara Perera and was caught at long leg by a diving Welegedera who then struck twice, having South African captain Smith caught behind for 15 and Jacques Kallis caught at second slip without scoring. De Villiers for 25 and Amla for a fluent 54 followed.
Herath kept the pressure on the batsmen and it needed some bold hitting from tail-enders Dale Steyn and Imran Tahir to enable South Africa to avoid the follow on.
Brief scores: Sri Lanka 338 (Samaraweera 102; De Lange 7-81) & 7-1 v South Africa 168 (Hashim Amla 54; Welegedara 5-52).