Sri Lanka bowled the home team out for 168 in the second Test to take a 170-run first-innings lead.
Durban: Sri Lanka pounced on South Africa's dismal recent record at Kingsmead to bowl the home team out for 168 in the second Test on Tuesday and move into a commanding 177-run first-innings lead at stumps on the second day.
Left-arm seamer Chanaka Welegedara took 5-52 to rip through South Africa's top order and spinner Rangana Herath 4-49 to mop up the tail, sending the Proteas to another slump at the Durban ground and their lowest total against Sri Lanka.
South Africa have lost their last three tests at Kingsmead and their poor form at the ground continued as the home batsmen collapsed after lunch to last just 54.4 overs following Sri Lanka's first-innings total of 338 - their highest score in South Africa.
Sri Lanka lost captain Tillakaratne Dilshan in the first over of their second innings, but the hefty lead saw the tourists take control of the game on South Africa's east coast and dramatically turn the tide in the three-match series after losing the first Test by an innings and 81 runs.
Veteran Thilan Samaraweera made 102 in Sri Lanka's first innings to put the visiting team on top, despite South Africa fast bowler Marchant de Lange's 7-81 on debut.
Left-armers Welegedara and Herath then combined to devastating effect as South Africa crumbled to 119-8 on a good batting pitch to give Sri Lanka hope of a first-ever Test win in South Africa and ending a run of 15 matches without a victory stretching back to July 2010.
"We are really happy. If tomorrow is a good day, we are in a good position to win the Test match," said Samaraweera, whose 13th Test century justified his late inclusion in Sri Lanka's touring squad after being dropped for the recent series defeat to Pakistan.
"The pleasing thing is this is my comeback tour," he said, "I'm really happy to get a hundred. When they picked the (initial) squad for South Africa I thought I would never play for Sri Lanka (again)."
South Africa needed a 26-run partnership between Dale Steyn (29 not out) and Imran Tahir for the ninth wicket to avoid the follow-on and Steyn combined with No. 11 De Lange to add another 23 for the last wicket.
Welegedara claimed the wickets of South Africa captain Graeme Smith and Jacques Kallis for a duck in a two-wicket burst early on. He also took a catch off Thisara Perera for Sri Lanka's first wicket and the Proteas slipped to 27-3 before Hashim Amla (54) and AB de Villiers rebuilt to go to tea on 100-3.
However, when De Villiers fell for 25 straight after the break to a loose drive to give Welegedara his third wicket and Amla went two overs later, South Africa's brief recovery was over and Sri Lanka had a major foothold in the match and the series.
Under-pressure middle-order batsman Ashwell Prince fell to Herath to a poorly-judged reverse sweep as South Africa self-destructed and lost 5-16 in the middle of their innings to continue the curse of Kingsmead.
"If we knew what our problem was here, we obviously wouldn't find ourselves in the position we are in," Amla said. "I think they bowled quite well and soft dismissals on our part. We know it's not a 160, 170 wicket. We're going to have to dig deep."
The hosts had dominated in an innings win in the first Test in Centurion but Sri Lanka already showed signs of capitalizing on South Africa's poor run at Kingsmead when 35-year-old Samaraweera anchored a much-improved batting display.
He was last man out just before lunch but his 46-run partnership with Herath (30) in the morning - along with a century stand with Sri Lanka's own debutant Dinesh Chandimal on Day One - gave Sri Lanka's bowlers something to work with following two poor batting displays in the series opener.
"We talked a lot after that game and we talked honestly," Samaraweera said. "The last five days we have practiced really hard. We put a lot in."
Samaraweera's gritty innings included 11 fours in a first Test century since August 2010 before he finally fell to De Lange to give the 21-year-old quick the third-best innings figures by a South African on Test debut.
De Lange, who ended Monday with 4-60, picked up all three wickets for South Africa on the second day as Herath, Welegedara and Samaraweera fell in quick succession to the youngster, making him the eighth bowler to take five in an innings on debut this year.
However, his heroics in his first Test were wiped away by a shaky South African batting performance.
"I don't know what to say and how to pinpoint it," Amla said. "We played some uncharacteristic shots and we find ourselves in a spot of bother."