Opener Dean Elgar fell five runs short of a century as South Africa climbed to 317 for four at the close of play on day two of the first Test against injury-hit Sri Lanka at Centurion Park on Sunday.
Elgar looked set for his 13th Test ton until he offered Sri Lanka seamer Dasun Shanaka a sharp caught-and-bowled chance that was superbly taken.
Faf du Plessis (55 not out) and Temba Bavuma (41 not out) will resume on the third morning after adding 97 runs, hoping to push South Africa past the visitors' first innings score of 396 after two free-scoring days that have produced 713 runs at a rollicking rate of 4.24 runs per over.
That would suggest a batting paradise, but the wicket has given assistance to the bowlers, with both sides perhaps guilty of erring in line and length and not taking advantage of the pace and uneven bounce.
"It is one of those wickets where if you apply yourself and simplify your game-plan, you can score runs," Elgar told SuperSport at the close.
"We have changed the momentum through the day and potentially have it back in our changeroom after a tough day yesterday."
"We want to only bat once on this wicket and then it is up to the bowlers. We probably need another 200-plus runs tomorrow."
Sri Lanka had already lost all-rounder Dhananjaya de Silva for the remainder of the Test series after he injured a thigh and retired hurt on 79 on the first day, and they were further hampered when seamer Kasun Rajitha limped off after bowling 2.1 overs in South Africa’s innings.
He is scheduled to have a scan on Sunday and his participation in the rest of the Test is yet to be determined, leaving the tourists without a top-six batsman and two of their bowlers.
South Africa profited as they raced to 141 in the 29th over, with Aiden Markram (68) and Elgar taking the attack to the bowlers.
But when Markram picked out Shanaka in the gully trying to play a booming drive off seamer Vishwa Fernando (1-59), the momentum was halted.
A mini-collapse with the score on 200 saw them lose three more wickets for the addition of only another 20 runs, with Rassie van der Dussen (15) and dangerman Quinton de Kock (18) falling cheaply.
But Du Plessis and Bavuma steadied the ship and handed the initiative back to the home side.
Sri Lanka had earlier resumed their first innings on effectively 340 for seven following De Silva's injury, with Shanaka’s superb career-best unbeaten 66 seeing them add 56 runs in 11 overs before he ran out of partners.
Debutant South Africa seamer Lutho Sipamla (4-76) claimed the remaining three wickets.
The second and final Test will be played in Johannesburg from Jan. 3.