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.
|Boylen pleased to see Bulls react to red rag in Thunder fracas|
|Icardi and Inter ´very far´ apart in contract negotiations|
|Mourinho leaves Manchester United|
|Curry humbled by latest milestone|
|Robertson: ´Unbelievable´ Alisson will bounce back from error|
|Curry scores 15,000th regular-season point in Warriors win|
|Rams star Gurley ´day-to-day´ with knee inflammation|
|Saints poised to clinch NFC top seed after topping Panthers|
|Mathews, Mendis centuries frustrate New Zealand|
|Kohli: Relentless Australia deserved victory|
|Relief for Paine and Australia after ending Test drought|
|Australia level series with dominant win over India|
|Libertadores holders River learn group as CONMEBOL boss calls for end to violence|
|Chargers RB Gordon planning to return against Ravens|
|Kobe Bryant visit motivated Browns´ Jabrill Peppers|
|De Bruyne: Fatigue not behind injury woes|
|´That´s not my concern´ - Broncos coach Joseph on job security|
|Lowry on Leonard´s free agency: I just want him to be happy|
|Yankees give Sabathia $500K bonus despite ejection|
|Ronaldo confirmed Juventus interest in January – Mendes|
|Lakers guard Rondo to begin rehab stint in G League|
|Saiz to leave Leeds United for Getafe|
|Whyte thinks Joshua rematch is ´only a matter of time´|
|Greenwood stars as Man United end Chelsea´s FA Youth Cup dominance|
|Panthers tight end Olsen expects ´full recovery´ after surgery|
|Derby County 0 Nottingham Forest 0: Lampard´s men fourth after tense stalemate|
|Clermont lose former All Black Toeava for six months|
|MLS unveils revamped playoff format for 2019 season|
|Ferrari to celebrate Schumacher´s 50th birthday with museum exhibition|
|Rabiot set for PSG exit after cancelling contract talks|
|Pepe departs financially troubled Besiktas|
|Philadelphia Flyers fire coach Dave Hakstol|
|Eagles to start Foles v Texans|
|PSG matches against Montpellier and Dijon rearranged|
|Martial agent clouds long-term future after United trigger extension|
|Zverev to make major final in 2019, predicts Ferrero|
|Canelo, Crawford, Lomachenko and the other pound-for-pound contenders|
|Barcelona boss Valverde admits to Lyon uncertainty|
|Club World Cup: Maverick Quintero gets another chance on the big stage|
|Henderson to miss majority of Ireland´s Six Nations campaign|
|Gentner to play on despite father´s death|
|Just good banter – Australia and India not concerned by Paine-Kohli exchange|
|Titans CB Logan Ryan out for season with broken leg|
|Suns send Trevor Ariza to Wizards for Kelly Oubre, Austin Rivers|
|Mourinho charge for ´improper´ language dismissed|
|Are the Knicks for sale? Depends on the offer, says Dolan|
|Klopp´s Liverpool are vulnerable – Neuer|
|Warrington: Frampton not an elite fighter|
|I want to finish the job off - Yates confirms Giro d´Italia focus in 2019|
|Atletico confirm Filipe Luis hamstring injury|
|Best backs Schmidt to lead Lions in 2021|
|Barcelona´s Vermaelen out for a month with calf injury|
|India lose Shaw for Australia tour as defeat looms in Perth|
|We didn´t have much luck - Nedved dismayed by Atletico tie|
|Manchester City must control Schalke, Begiristain warns|
|Ibrahimovic hints at LA Galaxy stay|
|Latham fills his boots in Wellington with record-breaking knock|
|I´m not thinking ´thank God it´s Bayern´ – Klopp|
|Luis Garcia and Steve McManaman confident of Liverpool progress|
|Arsenal face BATE as Chelsea get Malmo in Europa League|
|Europa League last 32: Draw in full|
|Irwin urges Mourinho turnaround before PSG Champions League clash|
|Rush backs German Klopp to see off Bayern|
|Hope shines as West Indies blitz Bangladesh in Sylhet|
|United and PSG set for Champions League showdown|
|Ajax star De Ligt delighted to join Golden Boy alumni|
|Champions League last 16: Draw in full|
|Lyon strikes to put Australia on course for victory in Perth|
|Mourinho´s players below Manchester United standards, says Giggs|
|We´ve got to find a way to get better in a hurry - McVay challenges spluttering Rams|