Lahiru Kumara took 2/35 as Sri Lanka used the seamer friendly conditions at Kingsmead, Durban to reduce hosts South Africa to 80/4 before rain stopped play on the opening day of the first Test in Durban on Wednesday.
Sri Lanka won the toss and asked South Africa to bat in overcast and blustery conditions, and had them in early trouble as they found prodigious movement off the wicket.
Home captain Temba Bavuma (28 not out) and Kyle Verreynne (9 not out) will resume in the afternoon session, with rain predicted for later in the day.
The first three South African wickets fell to catches in the slips as Sri Lanka’s
Aiden Markram (9) edged Asitha Fernando to Angelo Mathews at first slip, before fellow opener Tony de Zorzi (4) edged Vishwa Fernando to Kamindu Mendis at second slip.
Tristan Stubbs reached 16 before he became Kumara’s first victim when he was caught by Dimuth Karunaratne at third slip as the visitors continued to find a probing line that forced the batters to play.
David Bedingham (4) was then bowled through the gate by a delivery that nipped back into him from the dangerous Kumara.
The latter also had Bavuma caught down the legside, but was left frustrated when the umpire signalled a no-ball for an over-step.
Both sides are still in the running for a place in the World Test Championship final but will likely have to win at least three of their final four tests in the cycle.
South Africa host Pakistan for two Tests after the two-match series with Sri Lanka, who welcome Australia for two matches starting in January.