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.
|Ferraris fastest on stop-start day in Baku|
|Inter can chip away at Juve´s Serie A dominance - Spalletti|
|Emery riled by questions over Arsenal form|
|PSG´s season a waste without Coupe de France win – Marquinhos|
|Kovac only focused on Bayern ahead of Bundesliga title run-in|
|Rabbitohs edge out as Panthers as Bulldogs find their bark|
|Billings out of England´s limited-overs squads|
|Pochettino feels sorry for Kane but hints at early return|
|Guardiola waits on Fernandinho as De Bruyne remains out|
|Sarri expecting determined Man United response|
|Williams´ Russell to miss FP2 after manhole mayhem|
|NFL ´done messed up´ letting Redskins pick Haskins|
|Rudiger ready, Kante a doubt for Chelsea´s Manchester United showdown|
|Neymar: Hazard and I would cause havoc together|
|Suarez excited for Anfield reunion: My daughter remembers singing You´ll Never Walk Alone|
|Crusaders tame Lions for 25th straight home win|
|Melbourne City 5 Central Coast Mariners 0: Tottenham-owned Harrison leads rout with brilliant brace|
|Ter Stegen targets Germany No.1 spot|
|Juve the team Inter want to beat, says Nainggolan|
|Mo´unga commits to New Zealand and Crusaders|
|If you want to see me get kicked, watch MMA instead – Neymar|
|Cardiff hit by season-ending Ralls injury|
|Beale worried about Folau´s ´head space´|
|Solskjaer: I think Pogba will stay Man United|
|You can´t criticise a goalkeeper for one game – Pickford defends under-fire De Gea|
|FP1 cancelled in Baku after manhole drama|
|I trust him – Solskjaer refusing to drop struggling De Gea|
|Jets pick Quinnen Williams targets Tom Brady|
|Early success a must for Murray to justify unnecessary Cardinals gamble|
|Liverpool acting like a club that belongs at the top – Henderson|
|Spurs can´t get caught up in Nuggets crowd - DeRozan issues warning ahead of Game 7|
|Zabaleta expects Juventus-linked Guardiola to stay at City|
|Thunder skipper Shane Watson retires from BBL|
|The big Friday Premier League quiz|
|Ravens bring Hollywood to Baltimore, Giants reach for Jones - The best and worst picks of the NFL Dr|
|Bauer leads Indians past Astros|
|Five potential destinations for Josh Rosen after Cardinals pick Kyler Murray|
|Cardinals make Kyler Murray first pick as Giants spring Daniel Jones surprise|
|Copa Libertadores Review: Palmeiras, San Lorenzo punch tickets into last 16|
|Celtics Hall of Famer Havlicek dies aged 79|
|Cardinals´ Kyler Murray: I want to be best that ever played|
|Spurs top Nuggets to force Game 7|
|Ince ´sick and tired´ of nostalgic Solskjaer|
|Haskins falls to Redskins in NFL Draft|
|Stallings, Mullinax lead rain-affected Zurich Classic|
|Klopp never expected United to get a result in Manchester derby|
|Bosa ´excited to go kick butt´ with 49ers|
|Baker Mayfield leads congratulations to top draft pick Kyler Murray|
|Giants take Eli Manning successor in Daniel Jones|
|New York Giants fan wins season tickets for 100 years|
|Zidane hails ´fearless´ Diaz|
|Chiefs star Mahomes graces Madden 20 cover|
|Nick Bosa goes second to 49ers in NFL Draft|
|Cardinals take Kyler Murray first overall in NFL Draft|
|´I don´t really care what people say´ – Westbrook on criticism|
|Lakers star LeBron James tops NBA jersey sales|
|This Week in US Sports: NHL playoffs putting NBA postseason to shame|
|Madrid have turned down €180m for Asensio, says agent|
|Man City ´fighting like animals´ to hold off Liverpool – Fernandinho|
|Zidane annoyed with Getafe stalemate|
|Gasperini targets ´extraordinary´ finish to season for Coppa finalists Atalanta|
|Singleton to leave Worcester for Sarries|
|Liverpool beat Manchester City on penalties in FA Youth Cup final|
|Defending champ Pliskova dumped out in Stuttgart|
|NHL apologises to Golden Knights for controversial penalty call|
|Smith one clear at Trophee Hassan II|
|Getafe 0 Real Madrid 0: Zidane´s men held by Champions League chasers|
|Atalanta 2 Fiorentina 1 (5-4 agg): Gasperini´s men through to Coppa Italia final|
|Struff stuns Tsitsipas to set up Nadal quarter-final|
|Adebayor claims racism motivated infamous celebration|