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.
|Spain´s LaLiga plans to play regular-season game in U.S.|
|´Dream come true´ for Robertson to earn Bledisloe Cup start|
|LaLiga match set for USA following groundbreaking Relevent deal|
|FIFA rankings: France number one, Croatia and England soar, Germany and Argentina plummet|
|Hansen hails ´big leader´ Whitelock ahead of 100th cap|
|Cipriani pleads guilty to common assault and resisting arrest|
|PSG snap up Kehrer from Schalke|
|Maitland-Niles facing two months out with broken leg|
|Walker backs City squad strength to overcome De Bruyne blow|
|Thomas & Froome skip Vuelta, named in Tour of Britain squad|
|Thurston rules out retirement U-turn|
|Pumas look to build on Jaguares progress in Rugby Championship|
|Super Cup glory will make Atletico strong - Simeone|
|Rugby Championship 2018: True status of Erasmus´ Springboks rebuild to be discovered|
|LaLiga 2018-19: Coutinho ready to be Barca´s next Brazilian superstar|
|Serie A 2018-19: Can Napoli, Roma, Inter or AC Milan overhaul Juventus?|
|Braves survive skirmish, loss of Acuna to top Marlins|
|Robertson handed surprise start, Hodge gets nod for Bledisloe opener|
|MLS Review: Wayne´s World as Rooney inspires DC United, LAFC win|
|Djokovic and Dimitrov survive but Zverev loses in Cincinnati|
|Rain halts Halep as Muguruza´s defence ends and Wozniacki retires|
|Ozil´s racism claims nonsense, says Kroos|
|Malcom lost for words after Camp Nou bow alongside Messi|
|Injured Fowler withdraws from play-off opening Northern Trust|
|Marcelo happy with Madrid squad amid transfer talk|
|Foles isn´t worried about Brady´s handshake snub|
|Eli Manning on Jalen Ramsey´s comments: ´Who?´|
|Cerezo: Atletico´s objective is to reach Champions League final|
|Judge´s recovery taking longer than expected|
|Ronaldo in the past as Casemiro backs Lopetegui after Madrid loss|
|With our ´cojones´ Atletico can beat anyone – Costa revels in Super Cup glory|
|Super Cup loss doesn´t change Real Madrid transfer policy, says Lopetegui|
|Griezmann: Super Cup triumph justifies staying at Atletico|
|Valverde defends Suarez performances|
|Simeone´s eclipses Aragones as Atletico´s top coach with seventh title|
|Rockets GM: LeBron James is ´the greatest ever´|
|Salihamidzic, Kovac not standing in way of Rudy exit|
|Jaguars DB Ramsey calls Bills QB Allen ´trash´|
|Real Madrid 2 Atletico Madrid 4 (after extra time): Saul stunner seals Super Cup glory|
|Ex-India Test captain Wadekar dies aged 77|
|Gundogan ready to step up in absence of injured De Bruyne|
|Djokovic overcomes illness to see off Mannarino|
|Diego Costa nets fastest UEFA Super Cup goal ever|
|Everton feared missing out on Mina after World Cup strike|
|Barcelona 3 Boca Juniors 0: Messi, Malcom net as Barca win Joan Gamper Trophy|
|All Blacks stick with Barrett as Mo´unga misses out altogether|
|Modric benched for UEFA Super Cup clash with Atletico Madrid|
|Cipriani charged with assault after Jersey nightclub incident|
|Hamburg 1 Bayern Munich 4: Wagner and Muller hit braces in comeback victory|
|WATCH: Messi scores first goal as Barcelona captain|
|Iniesta, Xavi and Puyol were great teachers, says new Barcelona captain Messi|
|Moses retires from international football|
|Goals, assists, set-pieces - The stats that show De Bruyne is almost irreplaceable for City|
|Bergeron wins mammoth 24-man U.S. Amateur play-off|
|Hart to Burnley "not rocket science", says Dyche|
|Leipzig, Schalke reject Rudy transfer rumours|
|Yedlin knee injury not serious, Newcastle confirm|
|Bartomeu satisfied with Barcelona squad amid Pogba links|
|Kevin De Bruyne suffers knee injury|
|Steelers QB Roethlisberger in concussion protocol|
|Kehrer to PSG not complete, say Schalke|
|Hopoate handed 10-year ban from NSWRL|
|Is this worth it? Injuries prompted Te´o to consider future|
|Croatia hero Subasic retires from international football|
|Iniesta makes it two in two for Vissel Kobe|
|Chelsea send out defensive duo on loan|
|Zaha 2023: Palace star means more than goals|
|De Jong set for Ajax stay despite Barcelona interest|
|Serena ´still at the very beginning´ of comeback|
|Ajax can benefit from Mourinho approach - Blind|