Sri Lanka bounced back from a chastening morning session to restrict South Africa to 267-6 on day one of the Boxing Day Test in Port Elizabeth.
The tourists, buoyed by the return of skipper Angelo Mathews and Dinesh Chandimal for this three-match series, lost the toss on Monday and appeared set to face a day of toil after failing to take a wicket prior to lunch.
However, Suranga Lakmal impressed thereafter, returning 4-62 courtesy of some probing bowling to leave the contest intriguingly poised.
Lakmal's first three victims - Stephen Cook (59), Dean Elgar (45) and Hashim Amla (20) - were all caught behind by Chandimal on the fifth anniversary of the wicketkeeper's Test debut.
Rangana Herath then chipped in with two wickets, including JP Duminy for a classy 63, before Lakmal claimed another key scalp late in the day, having Faf du Plessis caught at first slip for 37.
Du Plessis' dismissal - in his first Test as full-time captain - continued a theme of home batsmen failing to kick on after getting themselves in on a pitch tinged with green.
Cook and Elgar gradually grew in stature during the morning session, but Lakmal found an excellent rhythm and length after lunch to lift his side.
The seamer removed Cook with a delivery that nipped away off the seam to square up the batsman, ending a first-wicket stand of 104.
Only one run was added before Elgar was also caught behind, Chandimal again taking a fine catch after Lakmal had got the ball to move away late.
Duminy counter-attacked superbly, scoring his first 20 runs in boundaries and finding the cover boundary with a succession of sumptuous drives as Amla struggled for fluency at the other end.
Yet Lakmal continued to pose a threat on his return to the attack after tea and he twice beat Duminy with superb deliveries either side of inducing another edge through to Chandimal from the out-of-sorts Amla.
Herath then built on Lakmal's breakthroughs by trapping Duminy, whose rate of progress had slowed, plumb lbw on the sweep.
Duminy wasted a review and another referral to the third umpire soon went against South Africa as Herath appealed unsuccessfully for leg before against Temba Bavuma (3), only for the original decision to be overturned.
Fittingly, it was Lakmal who claimed Monday's last wicket as Du Plessis was beaten by extra bounce with the new ball, leaving Vernon Philander (6 not out) to see out the remaining overs alongside Quinton de Kock (25 not out).