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.
|Independiente 0 Santos 0: Dogged defending preserves deadlock|
|Ceferin nominated for second term as UEFA president|
|Marseille have ´moved on´ from Balotelli deal|
|´Crazy´ Cheika his own toughest critic|
|McClaren defiant amid QPR woes|
|Lendl joins Zverev´s coaching staff|
|England captain Hartley ready for return|
|Buttler happy to serve up a century as England dig in at Trent Bridge|
|PSV beat BATE in Champions League thriller, Benfica held at home|
|Mkhitaryan backs Emery´s philosophy at Arsenal|
|Championship Review: Leeds go top, QPR problems mount|
|Ronaldo shares snap of ´Juventus family´|
|Aguero is the Premier League´s best foreign import, says Shearer|
|Real Madrid warned they must pay Rodrigo´s €120m release clause|
|England´s Broad fined for Pant rant|
|India on brink of victory after brilliant Bumrah halts Buttler|
|Serena Williams elevated to 17th seed at US Open|
|Kombouare signs new two-year Guingamp contract|
|Scaloni unclear on Messi´s long-term Argentina plans|
|F1 Raceweek: Gasly and Alonso restore focus at Spa|
|Nouri able to communicate, brother reveals|
|Pjanic extends Juventus contract to 2023|
|Odegaard joins Vitesse in latest loan from Real Madrid|
|Luck ´sort of happy´ with sack from Suggs|
|Manchester United´s Sanchez will ´be back soon´|
|Former Giants star Cruz announces retirement|
|RFU set Cipriani disciplinary date despite RPA complaints|
|Spalletti fined €10,000 for ´gravely offensive´ referee comments|
|IndyCar driver Wickens has spinal surgery after Pocono crash|
|Tiger: No doubt this is one of my best years|
|Vice-captain Tiger trying to remain objective in Ryder Cup conversations|
|Ronaldo won´t win Serie A by himself, warns Allan|
|Moeen sends message to England selectors with double century|
|Brunt calls time on Northern Ireland career|
|Tottenham´s Janssen sidelined after foot surgery|
|Liu Xiang breaks women´s 50m backstroke world record at Asian Games|
|Atletico Madrid winger Vitolo suffers knee ligament damage|
|Leverkusen teen Havertz aiming to emulate idol Ozil|
|Beckham to be honoured with UEFA President´s Award|
|CPS drops Hillsborough charges against Bettison|
|Who can take over from Federer, Nadal & Djokovic? Agassi backs Zverev, Kyrgios|
|´Freak incident´ rules Dragons´ Vaughan out for season|
|Kompany: Different Manchester City must not be complacent|
|Toyota withdraw appeal over Alonso´s Silverstone disqualification|
|Manchester City offload defender Denayer to Lyon|
|RPA want RFU to drop Cipriani charge|
|Cheika still the right man for Australia - Polota-Nau|
|Bolt not giving up on Manchester United dream|
|All Blacks must improve ´average´ set-piece, says Smith|
|Raiola hits back at Scholes following Pogba criticism|
|Indians top Red Sox in series opener|
|Struff stuns Cecchinato, Jarry reaches last 16|
|I´ll prove people wrong - Bolt completes first Mariners training session|
|Former champ Kvitova tops Radwanska, Pliskova ousted|
|Sad if it´s Filipe Luis´ last game for Atletico - Oblak|
|White Sox manager Rick Renteria hospitalised before game|
|Carragher: Van Dijk can become Liverpool legend|
|No timetable for Sale return from shoulder injury|
|This is a partnership - Rodgers on contract negotiations with Packers|
|Eagles QB Wentz unsure he´ll be cleared to play opener|
|Balotelli staying at Nice|
|It wasn´t a penalty, says Hodgson as Palace boss fumes at refereeing decisions|
|Salah can play much better - Klopp demands more from Liverpool star|
|Gasly to Red Bull: Vettel, Verstappen and the drivers who took their Toro Rosso chance|
|Klopp in the dark on Karius future amid links to Besiktas|
|Simeone pleased with draw after rigours of Super Cup|
|Captain Reus saves Dortmund in DFB-Pokal|
|I couldn´t care less - Klopp rejects title challenge talk|
|Ailing Bairstow keen to aid England´s unlikely victory bid at Trent Bridge|
|Redskins secure Peterson signing|