Stumps Sri Lanka 191 and 83 for 3 (Oshada Fernando 28*, Kusal Perera 12*) trail South Africa 235 and 259 (du Plessis 90, de Kock 55, Embuldeniya 5-66, Vishwa 4-71) by 221 runs
Sri Lanka were buoyed by Lasith Embuldeniya's debut five-for that rattled South Africa before tea, but hope dissipated soon after as they lost a clutch of wickets to give the hosts total control of the Durban Test.
South Africa rode on Quinton de Kock's second fifty of the match and Faf du Plessis' 90 to inch closer to 300 before losing 5 for 8 to set Sri Lanka 304. Then their quicks dug in after a solid second-innings beginning from Dimuth Karunaratne and Lahiru Thirimanne. Once the 42-run stand was broken, they nipped out two more, and when bad light brought an early end to proceedings shortly after 4.30pm, Sri Lanka were tottering a 88 for 3.
On his international debut, Embuldeniya picked up 5 for 66 to bowl South Africa out for 259 in their second innings. With Vishwa Fernando also taking 4 for 71, the hosts crumbled. Du Plessis was part of two vital partnerships, first adding 96 in concert with de Kock and then a further 60 with Vernon Philander to push his team further into safety before the dramatic collapse.
The big turnaround for Sri Lanka came after the 66th over, when the ball had to be changed after picking up a white mark from landing on one of the crease lines. South Africa added just 28 runs after the ball was changed, Embuldeniya and Fernando striking repeatedly.
Embuldeniya's dismissal of Philander kicked things off. Having temporarily adopted a defensive line from over the wicket, the left-arm spinner switched around and soon got one to skid through, beating the under edge and rattling the stumps. Vishwa then got the better of du Plessis after an engaging battle between bat and ball. He troubled him with zip and brought indecision into his batting. The uncertainty soon told as du Plessis shouldered arms to one that seamed in to hit his front pad right in front of the stumps.
Embuldeniya had his fifth when Kagiso Rabada gloved a turning delivery onto his thigh with Niroshan Dickwella completing the catch. South Africa were nine down in the very next over when Fernando disturbed Keshav Maharaj's stumps. Dale Steyn lasted all of six deliveries before he walked across the stumps to flick, only to expose the stumps that were rattled.
The speed of their collapse notwithstanding, South Africa had enjoyed a profitable morning with the bat as du Plessis and de Kock rapidly moved their team from parity into a position of strength. Having started slowly, du Plessis caught up to the more adventurous de Kock with a pair of drives off Lakmal, the first of which took the team's score past 150. The second was the shot of the morning as du Plessis played with a straight bat, high elbow and held the pose for the cameras as he laced it through the covers.
With both batsmen ticking, the lead soon progressed beyond 200, and there were other concerns for Sri Lanka in the field. Kusal Mendis was struck on an already-strapped right hand as he dived low to pouch a thick edge off du Plessis, and immediately left the field in pain. He didn't come back out for the remainder of the session, although his absence was mostly precautionary as he is still recovering from a bad finger injury he picked up on Sri Lanka's recent tour of Australia.
It was Embuldeniya who finally broke through for Sri Lanka, trapping de Kock with one that spun back in sharply to hit the pad. Philander walked in with South Africa already 235 ahead, and with du Plessis bringing up his his 18th Test fifty, and first at this ground, the pair batted on into second session before the change of ball also brought a change of fortunes for Sri Lanka.
Their bowlers ensured they won the session, but their batsmen were left with a monumental task. Karunaratne and Thirimanne survived until tea and then picked things up thereafter as South Africa gifted them a couple of extra lives. First, du Plessis and Elgar both stood motionless as an edge off Thirimanne's bat flew right between them at second and third slip, and South Africa then failed to notice a feathered edge off a Karunaratne waft outside off.
But the Sri Lankan captain couldn't make the chance count as for the second time in the match, he was dismissed lbw by Philander, and for the second time burned a review trying to get the decision overturned. With Thirimanne having flashed an edge to du Plessis in the slips, Sri Lanka lost both of their openers in a matter of moments after they had put on 42.
Kusal Mendis lasted just eight balls before he, too, nicked off to Duanne Olivier and after a relatively steady start Sri Lanka were wobbling at 52 for 3. Unbowed, Oshada Fernando and Kusal Perera played their shots and rode their luck to add an unbroken 31 for the fourth wicket before the weather closed in, but Sri Lanka need a further 221 runs to win the Test and, on current evidence, that total should be beyond the visitors.