Colombo - Fast bowler Morné Morkel claimed 3-34 as South Africa restricted Sri
Lanka to 223-9 from 49.2 overs in the second one-day international in
Colombo on Tuesday.
LIVE UPDATES: Sri Lanka v SA
Sri Lanka's stand-in captain Dinesh Chandimal and opener Tillakaratne Dilshan top-scored with 43 apiece before heavy rain ended the innings with four deliveries still to be bowled at the Premadasa stadium.
South Africa, thrashed by 180 runs in the first match on Saturday, recovered to keep the free-stroking Sri Lankan batsmen in check on the slow wicket after the hosts elected to take first strike.
But the Proteas suffered a setback when star batsman Hashim Amla, who missed the first game due to a neck strain, injured his left knee while fielding and was rushed to hospital for precautionary scans.
It was not immediately clear if Amla will be able to bat in what is almost certain to be an overs-reduced innings.
Sri Lanka lost opener Upul Tharanga in the fourth over before a second wicket stand of 59 between Dilshan and Kumar Sangakkara helped them recover to 66-1 in the 18th over.
Sangakkara, who smashed a career-best 169 on Saturday, hit six boundaries in his 37 before he mistimed a drive off left-arm spinner Aaron Phangiso and was caught in the covers.
South Africa pegged the hosts down to 123-4 in 30 overs as Mahela Jayawardene was bowled by Robin Peterson for 17 and Dilshan was caught behind off Morkel soon after.
Chandimal, leading Sri Lanka in place of the banned Angelo Mathews, boosted the total with four boundaries in his 51-ball innings.
Two Sri Lankan umpires officiated the game after Australia's Rod Tucker, who was due to stand at one end, fell ill before the start.
Dinesh Chandimal (capt), Lahiru Thirimanne, Tillakaratne Dilshan, Upul
Tharanga, Kumar Sangakkara, Mahela Jayawardene, Jehan Mubarak, Rangana
Herath, Lasith Malinga, Shaminda Eranga, Thisara Perera.