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.
|Southgate named honorary Yorkshireman|
|Nicky Butt: Manchester United low on confidence|
|Sissoko: Dembele criticism overblown|
|Thibodeau discusses Butler trade: We thought this was the best deal for us|
|Acuna, Ohtani win rookie of the year awards|
|LeBron James on Lakers’ early season struggles: ‘I almost cracked’|
|Welbeck has successful second operation on broken ankle|
|UEFA warns FFP cases can be reopened based on ´new information´|
|Foakes to keep England place for second Test|
|WATCH: Rooney looking sharp in England training return|
|Mbappe: Money in football is truly indecent|
|Djokovic back to brilliant best as Isner is beaten|
|Celta Vigo replace Mohamed with Cardoso after Real Madrid defeat|
|Joshua intrigued by Usyk, says Hearn|
|Ibrahimovic beats Rooney to MLS Newcomer award|
|Rams WR Kupp out for season with torn ACL|
|Sturridge denies ever gambling on football following FA charge|
|Koeman understands De Ligt´s Eredivisie frustrations|
|Jimmy Butler trade: 76ers acquire Timberwolves star in blockbuster deal|
|´Improve your attitude´ - Deschamps issues Dembele warning|
|Sturridge charged with misconduct over alleged breach of betting rules|
|Saints sign Marshall following Bryant injury|
|Mendy suffers knee injury, leaves France squad with Lacazette|
|Zverev beats Cilic in error-strewn London battle|
|Rafinha replaces injured Casemiro in Brazil squad|
|´One-dimensional´ Australia batsmen need work before World Cup - Finch|
|Mancini keen to work with ´incredibly gifted´ Tonali|
|Italian manager of the year Allegri targets long Juve stay|
|Injured Lee departs as Wales prepare squad for Tonga|
|Conte content to wait until June for coaching return|
|Etzebeth set to return, Whiteley a doubt for Scotland Test|
|In-form Verstappen does not need distractions from 2019 challenge|
|FA asks Guardiola to explain Manchester derby referee comments|
|LaLiga MVP Messi hopes the division stays wide open|
|Murray and Henshaw out of All Blacks Test|
|Injured Man Utd duo Pogba and Martial drop out of France squad|
|Modric cannot always be the best - Dalic|
|Very troubling times - LeBron James alarmed by gun violence|
|Bayern confirm Ribery ´altercation´ with reporter|
|Madrid hit by injuries to Nacho and Casemiro|
|Record-breaking Mushfiqur torments Zimbabwe|
|Spartak Moscow appoint Oleg Kononov|
|Rooney predicts ´exciting time´ after being named in MLS Best XI|
|Former England call-up Graham replaces Thomson in Scotland squad|
|Slater and Thurston among Queensland greats to join Maroons staff|
|Rapana set for six months out after shoulder surgery|
|Alves determined to play in the Premier League|
|Rockets GM denies Anthony will be waived|
|Monaco´s plight not Henry´s fault - Silva|
|It´s like the FBI came - River assistant unable to talk to Gallardo during final|
|Norman says Washington home crowds ´just don´t really care´|
|Bucks beat Nuggets to finish gruelling schedule stretch|
|Madrid ´very happy´ with Solari, says Butragueno|
|Titans stun Patriots, Browns upset Falcons|
|Browns´ Chubb relishes record-breaking performance: It definitely is very special|
|MLS Review: Red Bulls, Atlanta to meet in conference finals|
|Neymar wants more from perfect PSG|
|Higuain is feeling a lot of pressure – Gattuso|
|I didn´t insult anyone, says apologetic Higuain|
|Allegri delighted with Juventus response|
|Kyle Busch wins at Phoenix as Harvick, Truex qualify for Championship 4|
|WATCH: Highlights of thrilling Boca-River Copa Libertadores final|
|PSG coach Tuchel demands more despite Monaco thrashing|
|Boca missed too many chances, rues Schelotto|
|Solari remains tight-lipped on Real Madrid future|
|Hamilton not surprised by Verstappen-Ocon collision|
|Ronaldo fires Juventus to Serie A record|
|Higuain did nothing serious - Ronaldo hopes Milan striker avoids ban|
|Solari completes perfect Real Madrid audition with fourth straight win|
|Verstappen ordered to do public service after Ocon scuffle|