Sri Lanka lost Lahiru Thirimanne, caught behind off Dale Steyn for nought, but Karunaratne batted confidently to be 28 not out at the close, while new cap Oshada Fernando went on the attack when South African captain Faf du Plessis turned to spin bowling as the light faded to finish on 17 not out. Kasun Rajitha took three for 68.
Sri Lanka had reached 49 for one in reply at stumps, but the pitch should still be assisting the bowlers in overcast and humid Durban on the second day, so De Kock is confident the Proteas can still grab a first-innings lead.
It is unlikely, though, that South Africa will pick an all-seam attack, with left-arm spinner Keshav Maharaj set for a return on his home ground -- where he bowled 24 of the 76 overs delivered on the first day of a losing Test against Australia last season.More news: Apple accused over app for Saudi men to track wives
Some of the selection changes are due to injuries, with three leading fast bowlers ruled out, while some of the discards, such as former skipper Chandimal, struggled during series in New Zealand and Australia in what has been a gruelling southern hemisphere summer.
South Africa captain Faf du Plessis admitted that he was "in two minds" about what he would have done at the toss, but the hosts opted to play an extra bowler and drop Theunis de Bruyn from the middle order.
Sri Lanka successfully reviewed a not-out decision by umpire Richard Kettleborough.More news: Chelsea 'exploring Tiemoue Bakayoko, Franck Kessie swap deal'
He was told he had taken too long and the decision was not sent to television umpire Ian Gould.
Spinning all-rounder Milinda Siriwardana is also a potential option, although he last played a Test match for Sri Lanka in 2016 - against England at Chester-le-Street.More news: Richard Gere welcomes son with wife Alejandra Silva
The lapse was affordable as Amla made only three before being caught low down at second slip by Kusal Mendis off Suranga Lakmal, who had an outstanding first spell of one for six in seven overs.