Dimuth Karunaratne ploughed a lone furrow for Sri Lanka as South Africa took charge on the opening day of the first Test in Galle.
The opener carried his bat on Thursday as the hosts struggled to find any rhythm after opting to make their opponents bowl, Karunaratne finishing 158 not out as Sri Lanka were dismissed for 287.
Plenty of his partners made starts but could not push on, and Sri Lanka's total would have been even less competitive had last man Lakshan Sandakan not added a timely 25.
Kagiso Rabada proved South Africa's main threat with 4-50, while there was also a wicket for the returning Dale Steyn.
Left-arm chinaman Tabraiz Shamsi contributed 3-91 in his second outing as Sri Lanka toiled, only the impressive Karunaratne scoring big on a pitch that is expected to turn more and more as the game goes on.
Sri Lanka finished the day on a high, though, as Rangana Herath took advantage of the early spin to remove Aiden Markram before the close, South Africa finishing 4-1 at the beginning of their reply.
Stumps, Day 1: SA 4/1 after 4 overs. Elgar 4*, Maharaj 0*, trail by 283. Last wicket: Markram 0.— Cricket South Africa (@OfficialCSA) July 12, 2018
SL 287. Rabada 4/50, Shamsi 3/91, Philander 1/28, Steyn 1/54. #SLvSA #ProteaFire pic.twitter.com/r6uPlFI142
The initial signs looked positive for Sri Lanka as Karunaratne and Danushka Gunathilaka made a steady start, only for Rabada to find a beautiful line outside off stump to have the latter caught behind.
Dhananjaya de Silva helped push the score on to 70-1 but four quick wickets saw the hosts slump to 119-5 – Rabada and Steyn doing the damage as the Proteas' seamers found a good length.
Karunaratne kept his patient, watchful innings ticking over while panic ensued around him, bringing up his half century off 82 balls with a quick single.
He survived a scare soon after as Markram dropped him at short leg, and slowly pushed towards an eighth Test century.
A straight drive to the boundary off Shamsi took Karunaratne to three figures but by then Sri Lanka were eight wickets down and facing an uphill struggle to post a credible total.
The Karunaratne show! @IamDimuth carries his bat with 158*, the fourth Sri Lankan to do so in Test cricket, as the hosts are dismissed for 287 on day one in Galle.#SLvSA scorecard https://t.co/iKZgIHlw9a pic.twitter.com/XdTawzE1Hg— ICC (@ICC) July 12, 2018
Stand-in captain Suranga Lakmal and Sandakan gave him much-needed support for the final two wickets, Sri Lanka adding 63 as Karunaratne reached 150 for the fourth time in his career.
Eventually Sri Lanka's resistance came to an end as Shamsi had Sandakan stumped, but it left South Africa with a tricky four-over spell to navigate.
Markram was unable to do so as Herath drew him forward and found an edge that Angelo Matthews gobbled up at slip, but it was a rare disappointment on a productive day for the tourists.
|Hamilton questions approach to Formula One expansion|
|Ranieri honoured to lead ´exceptional´ Fulham squad|
|Solari saw Isco out of shape - Ceballos|
|Ranieri replaces Jokanovic at Fulham|
|Durant keeps details of Green spat ´in-house´ but envisages resolution|
|Rooney: Kane and Sterling are England superstars|
|Messi will make Argentina return, says Maradona|
|Warriors drop Hawks as Green serves suspension|
|In-form Healy sends Australia into semis|
|Former NBA star McGrady says Carmelo Anthony should retire|
|Celtics´ Smart: We have to look at ourselves in the mirror|
|Federer plays down preferential treatment talk|
|Mourinho is better than Guardiola – Maradona|
|Mbappe plays down Pele comparisons|
|Don´t worry bro – Mendy responds to Trump|
|Melvin, Snitker win manager of the year awards|
|Warriors´ Green suspended for Hawks clash|
|Asensio: It´s not for me to lead Madrid|
|Rooney ready to enjoy England farewell after pressure of ´Golden Generation´|
|Ludwigsburg stun high-flying Murcia in BCL|
|Rams v Chiefs moved to LA due to Mexico City field conditions|
|Skriniar discussing new Inter contract, confirms agent|
|Former Barcelona boss Martino named MLS Coach of the Year|
|Bell fails to report to Steelers, will sit out rest of season|
|Federer back on track after dismal Thiem display|
|Udinese appoint Nicola after sacking Velazquez|
|Monaco deny they broke rules regarding youth recruitment|
|Del Bosque, Zidane, Lopetegui - The former Castilla coaches Solari follows into Real Madrid hot seat|
|Ozil rejected ´crazy offers´ from Asia, reveals agent|
|Real Madrid appoint Solari on permanent basis|
|LeVert avoids need for surgery, should return this season|
|Neuer confident despite concerns over Bayern Munich form|
|All I ever wanted to do is win, says Sixers signing Butler|
|Pogba: Coming home to United was the best feeling ever|
|Watson among four signing new Bath deals|
|Susanna Dinnage to replace Scudamore as Premier League chief executive|
|Murray commits to Brighton until 2020|
|Rooney rejected chance of pre-World Cup farewell|
|Impressive Anderson thrashes Nishikori|
|Ozil´s Germany absence a ´pity´, says Sane|
|Rooney: I´ll finish my career in the US|
|McIlroy unsure of 2019 European Tour membership|
|Australian Open dismisses concerns of Federer scheduling bias|
|Hue Jackson joins Bengals staff as ´special assistant´|
|Real Madrid confirm Reguilon injury|
|Higuain handed two-match ban for Juve meltdown|
|Kruis ruled out for England as Jones calls up uncapped quartet|
|A year on from Italy failure, Ventura leaves Chievo after four games|
|Bairstow misses out as unchanged England promote Stokes|
|Recalled Alba denies Luis Enrique bust-up|
|´Unhappy´ Christensen won´t push for Chelsea exit|
|Nadal to make Abu Dhabi comeback in December|
|Taijul helps Bangladesh tighten their grip despite Taylor ton|
|Neymar joining Real Madrid wouldn´t hurt Iniesta|
|It´s just team spirit - Livingston not worried by Durant-Green exchange|
|Trippier out of England squad with groin injury|
|Ex-Sri Lanka international Lokuhettige charged by ICC|
|Former England and Chelsea star Joe Cole retires|
|Nets offer support to LeVert following serious leg injury|
|Panenka proud Sergio Ramos imitates his penalties|
|Liverpool´s Alisson seeks patience to reach potential|
|Anthony Davis leads Pelicans, Clippers hold off Warriors in OT|
|Lindelof rues international break for Man Utd|
|Shaqiri confident in more goals for Liverpool|
|Giants too good for 49ers in crunch time|
|Southgate named honorary Yorkshireman|
|Nicky Butt: Manchester United are low on confidence|
|Criticism of Barcelona star Dembele is overblown - agent|
|Thibodeau discusses Butler trade: We thought this was the best deal for us|
|Acuna, Ohtani win rookie of the year awards|