Spin is once again South Africa's undoing as the hosts end day two ahead by 272 runs with six second-innings wickets remaining.
VIEW MATCH CENTRE
If day one of the opening Test in Galle ended on an even keel thanks to a stunning 158 by Dimuth Karunaratne in Sri Lanka's total of 287, the second day fairly and squarely went in the favour of the hosts.
On a surface that aided turn and bounce right from the outset, the Sri Lankan spinners ran riot to bundle out South Africa for 126 and secure a hefty 161-run lead. By the time stumps were called, the hosts had added a further 111 runs for the loss of four wickets.
At the end of the second day's play, Sri Lanka's lead had swollen to 272 with six wickets still in the kitty. Angelo Mathews was unbeaten on 14 and had Roshen Silva for company on 10.
After the Proteas lost Aiden Markram late on day one, Rangana Herath did not take much time in adding to his wicket tally, trapping Keshav Maharaj lbw with a straighter one in just the third over of the morning. Things soon became worse for the visitors with Dilruwan Perera getting rid of the gritty Dean Elgar who edged one straight to Mathews at first slip for 8.
Temba Bavuma and Hashim Amla then decided that attack was the best form of defence on this surface and the duo tried to up the ante with a flurry of fours. The junior partner first got into the act, slamming Herath for two fours in three balls and was later joined in by Amla who used his feet beautifully against Perera to collect two fours of his own.
However, that was it as far as the counter-attack went as the visitors lost Amla, deceived by the extra bounce generated by Perera and lobbing a simple catch to the forward short-leg fielder for 15 with the South African scoreboard reading 40/4.
That 40/4 soon became 48/5 and then 51/6 as the visitors lost Bavuma and Quinton de Kock in quick succession. Bavuma, who was looking to be positive all along went for a big slog sweep to a tossed-up Lashkan Sandakan delivery outside off only to inside edge it back onto his stumps for 17. De Kock, on the other hand, was undone by a peach by Perera who forced the wicketkeeper-batsman to play down the wrong line only to find his stumps in a mess.
Faf du Plessis, celebrating his 34th birthday, saw the horror unfold from the other hand and took it upon himself to resurrect the innings. He was joined by Vernon Philander in the middle and the duo crafted a 64-run stand for the seventh wicket to take the visitors to lunch without any further damage.
However, Sri Lanka struck twice in three balls soon after the break to undo all the good work by the South Africans. Philander was the first to depart going back to Perera who straightened one to trap the batsman right in front of the stumps and pick his fourth scalp of the innings.
With the ball starting to reverse, Suranga Lakmal got in on the act to take the last three South African wickets. Du Plessis played some delightful shots during his 49 before being castled with a peach that moved in late. The Sri Lankan captain for the Test then wrapped up Kagiso Rabada (2) and Dale Steyn (8) quickly as South Africa folded in just 54.3 overs.
Perera was the pick of the bowlers for the hosts ending with 4/46 in his 23 overs while Lakmal finished with 3/21.
Karunratne then started where he left off in the first innings, going after the South African bowlers right away. The spinners, Maharaj and Tabraiz Shamsi, weren't able to extract the same amount of turn as their Sri Lankan counterparts and were milked easily.
The openers, Karunaratne and Danushka Gunathilaka, added 51 for the opening wicket before Maharaj struck three times to wrest back some of the momentum. He first had Gunathilaka going for a big slog over deep midwicket only to miscue straight into the hands of Rabada for 17 and then removed Dananjaya de Silva (9) and Kusal Mendis (0) in quick succession. Both batsmen were dismissed playing down the wrong line.
Karnunaratne meanwhile followed his marathon knock from the first innings with another half-century, one that was studded with seven fours. He was finally dismissed at the fag end of the day, edging Rabada to Amla at first slip for 60.