Faf du Plessis fell agonisingly short of a double century but made a career-best 199 as South Africa took control in the first Test against an injury-hit Sri Lanka side.
South Africa were all out for a massive 621 and held a lead of 160 at stumps on day three on Monday, with Sri Lanka closing on 2-65 in their second innings.
Kusal Mendis (33 not out) and Dinesh Chandimal (21 not out) remain at the crease at Centurion, but Sri Lanka are effectively five wickets down as team officials revealed that injured Kasun Rajitha, Lahiru Kumara and and Dhananjaya de Silva will not bat.
There is also concern for Chandimal, who needed treatment on his thigh and looked in some discomfort.
Home seamer Lungi Ngidi (2-28) picked up both wickets to fall, bowling captain Dimuth Karunaratne (6) with a delivery that kept low, before Kusal Mendis (0) edged to slip.
Du Plessis fell short of a major milestone with a poor selection of shot robbing him of a career-first double century.
He attempted to lift leg-spinner Wanindu Hasaranga (4-171) over mid-on, but instead offered a simple catch to Karunaratne.
He faced 276 balls and hit 24 fours in a masterful display of batting on a wicket that was not easy for batsmen with pace and variable bounce.
Sri Lanka had toiled in the field as injuries severely hampered their bowling attack.
Seamer Rajitha managed only 2.1 overs, fellow quick Kumara was forced off early and Hasaranga was limping a sliding save on the boundary.
They had started the innings without spinner De Silva, who suffered a thigh injury while batting and has been ruled out for two weeks.
“The way it (the injuries) went today, I’ve never seen that,” Sri Lanka batting coach Grant Flower said.
South Africa had resumed on 317 for four, with Du Plessis and Temba Bavuma (71) sharing a record fifth-wicket stand for the team against Sri Lanka of 179.
It was broken in bizarre circumstances when Bavuma walked from the field following an appeal for caught behind. He was not given out by the umpire, and replays suggested he had missed the ball by a good inch.
Du Plessis also put on a record seventh-wicket stand against Sri Lanka of 133 with Keshav Maharaj (73), who went to his highest test score before he was the last batsman out.
South Africa have added fit-again fast bowler Kagiso Rabada to their squad for the second and final test starting in Johannesburg on January 3.
– with AP