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.
26. September 2018
|Kovac, Robben praise Augsburg after draw|
|Angels star Ohtani to undergo Tommy John surgery|
|Simeone tips Gimenez to be fit for Madrid derby|
|Smith on his NBA Finals miscue: People make mistakes all the time|
|Rams CB Talib to have ankle surgery|
|Cousins ´feeling a lot better´, still unsure when he´ll return|
|I knew we´d be in trouble with Jones on penalties – Mourinho|
|Coyotes forward Galchenyuk expected to miss opener|
|Guardiola won´t compare Foden to Iniesta|
|Lampard shell-shocked as Derby win at Old Trafford|
|Ryder Cup 2018: USA celebrities take the honours|
|Manchester United´s torrid penalty shoot-out run continues against Derby|
|Guardiola: Foden already a great, great player|
25. September 2018
|Atletico Madrid 3 Huesca 0: Rojiblancos cruise ahead of Madrid derby|
|EFL Cup: Lampard dumps out Mourinho, Burnley lose at Burton Albion|
|Mourinho denies Pogba row despite stripping midfielder of vice-captaincy|
|Fabinho situation not complicated, insists Klopp|
|Manchester United 2 Derby County 2 (Derby win 8-7 on pens): Lampard heaps pressure on Mourinho|
|Afghanistan snatch tie after Shahzad pummels India|
|Inter 2 Fiorentina 1: D´Ambrosio maintains Nerazzurri revival|
|Oxford United 0 Manchester City 3: Foden stars as EFL Cup holders cruise into round four|
|Cousin takes Gabon post after Aubameyang rejection|
|Bayern Munich 1 Augsburg 1: Neuer error costs champions|
|Paris Saint-Germain must be a Champions League force to help Neymar - Baptista|
|Salgado warns of ´war´ in Spanish football|
|Cech deserves Arsenal place, says Seaman|
|Halep and Garcia among seeds to fall in Wuhan|
|F1 Raceweek: Mercedes taking no comfort in points advantage|
|Benitez charged by FA for referee comment relating to Zaha treatment|
|Cibulkova dumps out hampered Halep in Wuhan|
|Mourinho questions his players amid reports Pogba won´t captain United again|
|European Ryder Cup diary: Fleetwood´s hair delights Poulter|
|USA Ryder Cup diary: Tiger´s roaring reception, McEnroe´s bold prediction|
|Loans to be limited under new FIFA proposal|
|Prolific Nadolo signs new Montpellier contract|
|Modric? For us, Messi is the best – Valverde|
|Murray makes winning start in Shenzhen|
|Mickelson would cherish first victory on European soil|
|Hodge hoping pressure proves too much for South Africa|
|Woodward in show of support for under-fire Mourinho|
|Mickelson jokes he wants ´a shot a side´ from Tiger in Thanksgiving showdown|
|Reed: Captain America is a villain in Europe|
|Duminy to captain Proteas as Elgar replaces injured Amla|
|No Tottenham timeline for Lloris, Vorm returns|
|Woods ready for ´awesome environment´ on Ryder Cup opening hole|
|Tony Bellew determined to prove doubters wrong against Oleksandr Usyk|
|Tuchel explains why he likes Neymar at number 10|
|Manchester United smash revenue record but profits down|
|Furyk downplays Ryder Cup pairings talk, says Tuesday is about individuals|
|Rejuvenated Tiger out to improve poor Ryder Cup record|
|Saunders fined £100,000 for ´sickening´ online video|
|Hazard can reach his full potential with Sarri´s Chelsea - Zola|
|Ryder Cup heading back in Europe´s direction, says Niall Horan|
|Wow! Klopp hails Sarri´s Chelsea transformation|
|Giovinazzi to partner Raikkonen at Sauber in 2019|
|Bjorn backs ´phenomenal´ Rahm to continue trend of Spanish success|
|Durant in no rush to decide Warriors future|
|Rossi to face anti-doping hearing|
|Mignolet to return for Liverpool against Chelsea|
|Premier League ´interesting´ for Germany boss Low|
|Wilder wins Twitter vote to be Joshua´s next opponent|
|BREAKING NEWS: Isco an El Derbi doubt due to appendicitis|
|Juventus won´t rest Ronaldo ahead of Napoli clash|
|Slater cleared to play in NRL Grand Final|
|Top seed Begu sent packing in Tashkent|
|This isn´t my last hurrah in Ryder Cup, insists Poulter|
|Barba back in NRL with North Queensland Cowboys|
|Arsenal wait on Mkhitaryan and Sokratis|
|All Blacks wary of Pumas pack ahead of Buenos Aires Test|
|Ryder Cup has special place in Pep Guardiola´s heart, says Fleetwood|