South Africa posted their lowest ever Twenty20 total as their tour of Sri Lanka ended with a three-wicket defeat in Colombo.

The Proteas triumphed in the one-day international series between the teams but lost their way after taking an unassailable 3-0 lead, including being bowled out for 121 in the final game.

Their disappointing batting form continued in the Twenty20 format, Lakshan Sandakan (3-19) claiming a triple-wicket maiden as the tourists were bowled out for 98, two runs less than their previous low, posted against Pakistan in 2013.

Sri Lanka stuttered themselves in reply, eventually reaching their target with four overs to spare in a low-scoring encounter.

Hashim Amla's duck in the final ODI had set the tone for a miserable Proteas innings and the opener again failed to register a run on Tuesday, departing early to Dhananjaya de Silva (2-22).

South Africa reached 30 before losing their second wicket, De Silva and Sandakan combining to run out Quinton de Kock for 20.

Wickets fell at an increased rate after De Kock's departure, with Sandakan removing Heinrich Klaasen, Andile Phehlukwayo and Kagiso Rabada in an action-packed 11th over.

The tourists crawled towards three figures before falling short when Tabraiz Shamsi was dismissed by Isuru Udana for a duck, seemingly teeing up a comfortable chase for Sri Lanka.

However, two Rabada wickets in the opening over encouraged hope of an unlikely turnaround, even if De Silva's 31 carried Sri Lanka over halfway to a modest target before he made his exit.

Shamsi and Junior Dala also struck twice as South Africa fought hard, but Dinesh Chandimal's unbeaten 36 helped the home team limp over the line.