Spinner Akila Dananjaya took career-best bowling figures to help Sri Lanka thrash South Africa by 178 runs in the fifth and final one-day international on Sunday. However, South Africa won the five-match series 3-2.
Captain Angelo Mathews led Sri Lanka's batting with an unbeaten run-a-ball 97 to help his team to a challenging 299/8 after winning the toss.
Dananjaya took 6/29 to skittle the tourists for 121 in 24.4 overs. It was South Africa's lowest score against Sri Lanka in one-day cricket and also their second biggest defeat by runs against Sri Lanka.
South Africa recorded their previous lowest ODI total of 140 against Sri Lanka in 2013 and lost that match by 180 runs at the same venue.
Dananjaya bettered his previous best one-day bowling figures of 6/54 against India last year.
Captain Quinton de Kock made 54 off 57 for South Africa.
South Africa's run chase started poorly when they lost opener Hashim Amla, bowled with a classic outswinger by seam bowler Suranga Lakmal with the team yet to score.
Dananjaya opened his account by catching Aiden Markram (20) off his own bowling and then bowled Reeza Hendricks with a googly in the next delivery to leave South Africa 31/3.
Dananjaya trapped Heinrich Klaasen leg before wicket to push South Africa to 39/4.
De Kock and JP Duminy added 46 runs for the fifth wicket, the biggest partnership of South Africa's innings, before spinner Dhananjaya de Silva had Duminy caught and bowled for 12.
The tourists lost their last six wickets for 36 runs.
Earlier, Mathews opted for his team to bat first and the captain came in when Sri Lanka was 114/3. He shared crucial partnerships of 53 runs for the fifth wicket with de Silva (30), 52 for the sixth wicket with Thisara Perera (13) and 44 for the seventh wicket with Dasun Shanaka (21).
Mathews' innings included 11 boundaries and a six. Willem Mulder and Andile Phehlukwayo took two wickets each for South Africa.