Spinner Rangana Herath claimed five wickets as Sri Lanka bowled out the hosts for 241 in their second innings at Kingsmead in Durban to win by 208 runs. South Africa had been set a target of 450.
“It was everyone chipping in, everyone giving it 100 percent,” Sri Lanka captain Tillakaratne Dilshan said at the post-match presentation. “When we play our brand of cricket, we can beat any team.”
Sri Lanka had managed to avoid defeat in only one of its eight previous Tests in South Africa, a draw in December 2000. It was also without a win in 10 Tests, home and away, this year.
The Sri Lankans lost the opening game of the series in Centurion by an innings and 81 runs. The third Test in Cape Town starts on Jan. 3.
The visitors began day four on 256-7 and added a further 23 runs. Dale Steyn collected two of the wickets to fall this morning to finish with figures of 5-73.
South Africa was 86-1 at lunch, with only captain Graeme Smith losing his wicket -- caught at second slip by Mahela Jayawardene off the bowling of Dilhara Fernando for 26.
Jacques Rudolph was dismissed at the start of the second session and wickets continued to tumble, with Jacques Kallis failing to score for a second time in the match. Hashim Amla led the resistance with 51 before being run out.
AB de Villiers (69 runs) and Steyn (43) then shared a 99- run partnership to frustrate Sri Lanka before Herath trapped De Villiers leg before wicket soon after the introduction of the new ball. It sparked a collapse and the last four wickets fell in less than four overs.
“From the word go, we haven’t been good in this Test match,” Smith said. “We’ve been outplayed in every facet of this game. Credit to them, we were poor and we’ve got to find a way to bounce back.”
South Africa has now lost four straight Tests at Kingsmead, after defeats to Australia, England and India since March 2009.