Sri Lanka continue to fight hard, but it is looking almost certain now that South Africa will win the first Test at Kingsmead.
When bad light stopped play on day three on Friday, the visitors were 83/3, needing a further 221 for a highly unlikely victory.
Debutant Oshada Fernando (28) and Kusal Perera (12) are at the crease for the visitors while Kagiso Rabada (1/28), Vernon Philander (1/13) and Duanne Olivier (1/3) have a wicket each.
By the end of the day, with the floodlights burning bright, the Proteas were bowling spin from both ends to stay on the field with Keshav Maharaj and Aiden Markram operating.
Earlier, skipper Faf du Plessis (90) and wicketkeeper Quinton de Kock (55) combined for a 96-run fifth-wicket stand that effectively put the game out of Sri Lanka's reach.
The visitors fought back, however, by taking the final five wickets of South Africa's second innings for just eight runs in a rot that saw Du Plessis out LBW by not offering a shot against Sri Lankan left-arm seamer Vishwa Fernando.
Bowling around the wicket, Fernando had angled the ball into the stumps and Du Plessis completely misjudged the line.
Read more: http://v.duta.us/jI6Z7gAA