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.
|Deschamps never considered France exit prior to World Cup win|
|Persepolis eye Champions League after Iran impress at World Cup|
|Sandy Lyle gets The Open underway at Carnoustie|
|Roosters sign England international Hall|
|Ovechkin, Kim earn major honours at ESPY Awards|
|Owens not ´actively seeking´ to play in NFL again|
|Argentina need Messi – Tevez urges Lionel not to retire|
|Minnesota United 2 New England Revolution 1: Ramirez, Quintero sink stuttering visitors|
|Shaw: I want to be first name on Man United teamsheet|
|Manny Machado dealt to Dodgers|
|Pjanic hails Ronaldo arrival but refuses to confirm Juve future|
|Perotti: Roma can cope without Liverpool-bound Alisson|
|Klopp hopes Liverpool building towards title tilt|
|Karlovic exits as four seeds bow out in Newport|
|Angels clap back at Manfred´s marketing comments on Trout|
|Titans DL Casey will still protest despite new anthem policy|
|Popovich on Leonard trade: It´s time to move on|
|Zola returns to Chelsea as Sarri´s assistant|
|Anthony Joshua targets ´dream´ fight in Texas|
|Celtic 3 Alashkert 0 (6-0 agg): Dembele hits brace before injury worry|
|Schwartzman stumbles but Spanish duo reach last eight at Swedish Open|
|Top seeds progress in Bucharest as Larsson conquers Kung|
|Perez promises ´incredible´ signings at Real Madrid|
|Liverpool need a top goalkeeper - Souness|
|It was just an absolute car crash - Root regrets bat-drop celebration|
|Mourinho´s pre-season fears mount with Sanchez sidelined|
|Alisson thanks Roma fans ahead of rumoured Liverpool switch|
|Pogba must understand his World Cup heroics, says Mourinho|
|Odriozola excited by Lopetegui reunion at Real Madrid|
|Revis announces retirement from NFL after 11 seasons|
|The Open 2018 diary: Rahm´s saving Grace, Rory´s going grey|
|Kawhi Leonard traded to Raptors as DeMar DeRozan heads to Spurs|
|Cantona, Rosberg and other surprise retirements after Warburton hangs up his boots|
|No doubting Thomas as he climbs into yellow with stage win|
|Liverpool´s Oxlade-Chamberlain to miss ´vast majority´ of 2018-19|
|Open Championship by far the greatest - Player|
|Sarri wants new central midfielder and hints at Chelsea stay for Cahill|
|Nantes sign former Manchester United full-back Fabio|
|Marcelino rewarded with one-year Valencia extension|
|Warburton retires: Bale leads social media tributes to Welsh great|
|Mistakes do not define me, says Chelsea boss Sarri|
|Saints and Tigers to honour Horne with Twickenham clash|
|I want to keep Hazard, says Sarri|
|Europe must stop American juggernaut at Carnoustie|
|Joshua planning for heavyweight ´legacy´ – starting with Povetkin|
|Warburton retires: Wales and Lions star´s career in numbers|
|Matching ´ridiculous´ Tiger not on McIlroy´s radar|
|Spain sent me World Cup SOS, claims Benitez|
|Ozil, Gundogan critics should ´shut up´ - Klopp|
|McIlroy plans to play carefree at Carnoustie|
|Pakistan thrash Zimbabwe to secure series win|
|Warburton retires: Gatland salutes Wales and Lions great|
|Sturridge determined to stay at Liverpool|
|Mbappe is an alien – Varane|
|Warburton retires from rugby|
|India to assess Bhuvneshwar as Bumrah makes Test squad|
|Injured Craddock passes $100,000 in donations at Tour de France|
|WATCH: Perez taunts team-mate after audacious training goal|
|Alison Becker tweets ´I´m joining Liverpool´... but all is not as it seems|
|F1 Raceweek: Hamilton chasing down Schumacher - German GP in numbers|
|Notorious Carnoustie holds fond memories for legendary Watson|
|Rooney refused to be ´dead weight´ at Everton|
|The Open 2018: Molinari, Rahm and the in-form contenders at Carnoustie|
|Marsh interested in Australia leadership roles|
|United can challenge City for Premier League title, says Rooney|
|MLB All-Star 2018: Seven things you missed at Midsummer Classic|
|American League win home run-filled MLB All-Star game|
|Dragons lure Sims from Broncos|
|Cassano: Ronaldo like Nadal, Messi like Federer|
|Lakers´ Ball undergoes successful knee surgery|