Sri Lanka gained control of the second Test against South Africa at Durban on day two, when 14 wickets fell for 224 runs.
After turning their overnight 289 for seven into 338, Sri Lanka dismissed the hosts for 168 - with Chanaka Welegedara taking five wickets and Rangana Herath four, before reaching seven for one second time around for an overall lead of 177.
An eventful day started with Test debutant Marchant de Lange taking the remaining three wickets to fall to finish with figures of seven wickets for 81 runs.
The 21-year-old, who took four wickets on the opening day, again posed the chief threat to the home batsmen on day two.
De Lange dismissed Herath for 30 and Welegedara for two before Thilan Samaraweera was the last man out for 102.
The hosts were soon in trouble when they slipped to 27 for three, losing Graeme Smith, Jacques Rudolph and Jacques Kallis cheaply.
Rudolph was the first to fall, pulling a short delivery to Welegedara at long leg and departing for seven with the scoreboard reading 22.
Captain Smith and Kallis had added just five to the total when the former pushed at a Thisara Perera delivery outside off-stump and was caught by wicketkeeper Dinesh Chandimal for 15.
And Kallis was on his way soon after, Mahela Jayawardene reacting sharply at second slip to catch Kallis before he had scored, off the bowling of Welegedara.
Hashim Amla and AB de Villiers then steadied things, carrying their team to a score of 100 for three at tea.
Amla was the more attacking presence, taking three boundaries off the 27th over, bowled by Dilhara Fernando, before reaching his half-century from 69 balls.
However, following the resumption the duo were only able to add three runs to the total before de Villiers was out.
The 27-year-old, who had earlier hit his 5,000th Test run, was caught by Jayawardene for 25, off Welegedara.
That incident ended a fourth-wicket stand of 76 from 147 balls and sparked a slump which saw the tourists lose seven men for 68 runs.
Just three runs later and Amla was on his way for 54, edging to Chandimal to end an 83-run stay which included 10 fours.
Mark Boucher had made just three when he gave Tillakaratne Dilshan a straightforward catch.
Just one run later Ashwell Prince became another Herath scalp, although there was an element of fortune about the departure as the ball came off the batsman's back pad and flicked the bat on its way to Jayawardene.
It was 119 for eight five balls later when Morne Morkel was bowled by Herath without scoring.
Dale Steyn and Imran Tahir had put on 26 runs for the ninth wicket when Tahir, just one delivery after hitting Herath for six, was stumped by Chandimal off the slow left-armer.
And South Africa's innings was over when de Lange got an edge on a Welegedara delivery and Chandimal did the rest, ensuring the pace bowler finished with figures of five for 52 from 16.4 overs. Herath's four for 49 came off 20.
South Africa, convincing winners of the opening match of the series at Centurion, took a wicket with the ninth ball of Sri Lanka's second innings.
Steyn - who had earlier finished unbeaten on 29 - tempted Dilshan into a shot which was caught by Smith to leave the tourists on four for one.
Bad light meant the teams left the field four balls and three runs later - and soon after it was stumps.