Durban - Dale Steyn struck twice in three balls, but Sri Lanka refuse to lie down in the first Test against the Proteas at Kingsmead.
At lunch on day four, the visitors had recovered to 166/5 and they need another 138 runs for what would be a truly stunning victory.
Having started the day 83/3 needing a further 221 runs for the win, Sri Lanka got an early boost with the news that Vernon Philander would not take the field as he nurses a hamstring strain.
It meant that Steyn and Kagiso Rabada got things underway for the Proteas, but there was firm resistance from Kusal Perera (56*) and Oshada Fernando.
The pair looked to be positive whenever they could and they kept the scoreboard moving along nicely, but Steyn struck with two killer blows in the 10th over of the day.
First he had debutant Fernando caught by Faf du Plessis in the slips for 37 with a delivery that moved slightly away off the surface.
Then, just two balls later, wicketkeeper Niroshan Dickwella was out for 0 when he popped a full delivery straight back to Steyn.
At that stage, Sri Lanka were 110/5 and looked dead and buried.
But, as they have done throughout this contest, the underdogs refused to give up the fight and Perera and Dhananjaya de Silva (25*) brought up their 50 partnership off 82 balls and injust over an hour.
The Proteas have turned to Keshav Maharaj in the absence of Philander, but so far the left-arm spinner has not been able to influence the game.