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.
|Whyte takes aim at ´coward´ Fury ahead of Wilder showdown|
|Jets delighted with Darnold, open to trading Bridgewater|
|Gasly to replace Ricciardo at Red Bull|
|Valencia 1 Atletico Madrid 1: Rodrigo strikes to deny Simeone´s side|
|Injured Halep withdraws from Connecticut Open|
|Cipriani fined £2,000 by Gloucester|
|Mourinho will be sacked before Christmas, says Sharpe|
|England face record chase after Kohli smashes India to huge lead|
|Ozil captaining Arsenal a miracle - Hoeness|
|Japan players apologise for ´thoughtless, careless´ actions at Asian Games|
|Henry wants Bordeaux job, Wenger confirms|
|Pogba too inconsistent and not a leader, claims Scholes|
|PCB chairman Sethi resigns in letter to Pakistan prime minister Imran Khan|
|US Open comes too soon for Tsonga|
|Unpredictable results making 2018 F1 season a classic - Wolff|
|Mendy restricts phone use on Guardiola advice|
|Modric brands Inter approach claim ´the greatest nonsense in history´|
|Runners and Ryders: Olesen leapfrogs Poulter into last Team Europe berth|
|Kenedy escapes further action over Camarasa kick|
|England´s Bairstow suffers ´small fracture´ to finger|
|Gonalons joins Sevilla on loan from Roma|
|Modric, Ronaldo and Salah final UEFA Player of the Year nominees|
|Tottenham to play opening Champions League home match at Wembley|
|Karius´ Champions League blunders did not lead to Alisson signing - Klopp|
|Leeds considered €20m Conte offer before turning to Bielsa|
|Modric, Rakitic lead new era for World Cup finalists Croatia|
|Storm´s Chambers banned for three weeks, Smith injury not serious|
|Porte to race Vuelta after recovering from Tour crash|
|The Career Golden Masters: A run-down of Djokovic´s magnificent record|
|Japan send home four basketball players from Asian Games amid prostitution scandal|
|Rugby tackle bags helping Liverpool´s Alisson with Premier League life|
|Federer raring to go at US Open after Djokovic defeat|
|Chelsea boss Sarri plans to give up smoking|
|Alonso´s Toyota team stripped of Silverstone victory|
|Ceballos: No issue with former Real Madrid boss Zidane|
|MLS Review: Martinez equals single-season goalscoring record|
|Astros avoid sweep with win over Athletics|
|Seppi advances, Paire exits Winston-Salem|
|Bale feeling good as Madrid eye sweep of trophies|
|You can´t leave a house three-quarters built – Neville urges United to back Mourinho|
|Dodgers slugger Machado leaves game after being struck by pitch|
|Harden says Carmelo will ´be a good fit´ for Rockets|
|Morata: I never considered Chelsea exit|
|Gavrilova kicks off title defence in New Haven|
|Lopetegui pleased with Bale and Real Madrid after LaLiga opener|
|It´s a very special moment – Djokovic revels in Golden Masters achievement|
|Sorrentino thanks Ronaldo for support after injury|
|Twins place Santana on DL with finger injury|
|Yankees´ Gregorius suffers ´pretty significant´ heel bruise|
|Snedeker ends PGA Tour drought with Wyndham Championship win|
|Spalletti unconcerned despite Inter´s underwhelming start|
|Djokovic makes history with Masters clean sweep in Cincinnati|
|Real Madrid 2 Getafe 0: Bale gives Lopetegui first LaLiga win|
|IndyCar driver Wickens taken to hospital after crash|
|Sherman calls for NFL to scrap ´idiotic´ helmet rule|
|Sassuolo 1 Inter 0: New-look Nerazzurri given early reality check|
|Hughton: Shock United win does not alter scale of Brighton´s task|
|Navas keeps place as Courtois waits on Madrid debut|
|Ndidi signs long-term Leicester City contract|
|Pandya tears through feeble England to put India in command|
|Alonso creates motorsport history with victory at Silverstone|
|Kovacic: Chelsea and Sarri believe in me|
|Brighton loss a big lesson for United – Pogba|
|Mistakes hit United´s confidence - Mourinho|
|Brighton and Hove Albion 3 Manchester United 2: Murray lifts Seagulls to another win over Mourinho|
|Quickfire Moon treble sets up Rhinos win|
|Manchester City celebrate win with Silva´s son|
|Brentford 2 Sheffield Wednesday 0: Maupay stars as Bees buzz by Owls|
|Guardiola delighted with fit and firing Aguero|
|Waring marks 200th event with maiden title in Gothenburg|