Sri Lanka levelled their series in South Africa with victory by 208 runs on the fourth day of the second Test at Durban.
Set an imposing 450 to win and clinch the three-match series, the hosts were dismissed for 241, with only AB de Villiers (69) and Dale Steyn (43) - who put on 99 for the seventh wicket - offering much resistance.
Rangana Herath took five wickets for 79 runs to seal a first Test win for Sri Lanka since the retirement of legendary spinner Muttiah Muralitharan and set the stage for a thrilling decider in Cape Town next week.
The penultimate day at Kingsmead started with the tourists taking their overnight total of 256 for seven on to 279, with Steyn taking his innings figures to five for 73.
Thisara Perera edged Steyn to Jacques Kallis at second slip for 12, Chanaka Welegedara hit 10 before despatching the fourth ball he faced to Hashim Amla, then Dilhara Fernando lobbed a Morne Morkel delivery to Ashwell Prince at gully to depart for three and end the innings.
Welegedara almost gave Sri Lanka the perfect start to the second South African innings when he induced an edge from Jacques Rudolph, but Angelo Mathews was unable to claim a one-handed catch diving to his left at slip.
Graeme Smith survived an lbw appeal from Perera in the sixth over before fencing a short delivery from Fernando to Mahela Jayawardene at second slip, succumbing for 26 with the scoreboard reading 37.
There were no further scares as Rudolph and Amla led the team to lunch on 86 for one - but the afternoon session saw five wickets fall for 45 runs in 23 overs.
Within four balls of the resumption Rudolph was on his way for 22, caught by Jayawardene off Perera.
Kallis followed 19 balls later without scoring, completing a first Test pair when he top-edged a Herath delivery to short leg, where Tharanga Paranavitana took the catch.
It was 106 for four in the 34th over when Amla was run out for 51, pushing down the ground and calling for a single Prince chose not to take.
Prince followed for seven, when he fended a short Fernando delivery to Paranavitana at first slip - and it was 133 for six when Mark Boucher was trapped lbw by Herath for seven.
De Villiers and Steyn dug in for more than 34 overs before the former was trapped lbw for a 141-ball 69 by Herath with the scoreboard reading 232.
The end was nigh soon after when Morkel was out lbw to Tillakaratne Dilshan for five, before Steyn's 125-ball contribution ended in similar fashion.
The contest was over when Marchant de Lange - who took eight wickets on his Test debut - became the third wicket to fall on 241 when he was bowled second ball by Herath, who finished with match figures of nine for 128.