Dinesh Chandimal and Dhananjaya de Silva scored fluent half-centuries as Sri Lanka took advantage of some lacklustre South Africa bowling to post 340 for six at the close of day one of the first Test at Centurion Park on Saturday.
Dasun Shanaka (25 not out) and Kasun Rajitha (seven not out) will resume on the second day having come through a difficult spell late in the evening session against the new ball, though South Africa aided them by not attacking the stumps enough.
The tourists won the toss and elected to bat, recovering from a poor start that was largely self-inflicted to seize the initiative on a wicket with plenty of bounce that is likely to become uneven as the Test goes on.
Chandimal’s bright innings of 85 came to an end when home seamer Wiaan Mulder (3-68) got the ball to leap spitefully off a length, clipping his glove and flying to Faf du Plessis in a second slip position.
He had put on 99 with Niroshan Dickwella, and was involved in a stand of 131 runs in just 34.1 overs with the excellent De Silva, who retired hurt on 79 from 105 balls having punished the home side’s inconsistent line.
De Silva was in complete control at the crease but suffered a hip injury as he jogged through for a comfortable single, dropping to the floor at the end of the run in obvious discomfort. He will have a scan on Saturday evening to assess the damage.
"We were thinking 280 plus as a score in the first innings, so 340 is surprising everyone in our team," Chandimal told broadcaster SuperSport at the close.
"But we have confidence after today's play and we look forward to putting them under pressure tomorrow with another 30 to 40 runs and some early wickets. De Silva told me he thinks it is a strain and he can't play for two to three weeks, but we will see after the scan."
South Africa bowled poorly in the first hour, but still managed to reduce the visitors to 54 for three as Sri Lanka gave their wickets away with injudicious stroke-play.
Captain Dimuth Karunaratne raced to 22 from 20 balls before he played the ball onto his own stumps off Lungi Ngidi (1-54), while Kusal Mendis tried to pull Anrich Nortje (1-60), but was beaten for pace and looped a catch to Ngidi at mid-on.
Kusal Perera then chased a ball that was far too wide from Mulder and was caught by wicketkeeper Quinton de Kock for 16.
But Sri Lanka effectively added another 230 runs before losing another wicket when Chandimal fell, and Mulder then removed Dickwella for a well played 49, and seamer Lutho Sipamla (1-68) bowled fellow debutant Wanindu Hasaranga (18).
"The guys aren't happy with the performance, we are a young team and they are coming together as we go. We improved as the day went on," Mulder said.
"Tomorrow will be a massive day for us in this test match and we will have to come out fighting. There was a lot in the wicket up front and the talk was to hit the top of off-stump, but we bowled too short and didn't execute (our plans) and they got away from us."
South Africans raise fists before Test against Lanka
Rahane stuns Warne, Sehwag with his smart captaincy
How Indians kept the Aussies 'under pressure'
Virat Kohli on India's performance at the MCG
Why Gavaskar can't praise Rahane's captaincy