
De Villiers made 63 off 44 balls in a South African total of 169 for five but Sri Lanka won by five wickets with one ball to spare to regain some pride after being outplayed in the three-match Test series.
ICC reprimands Tahir for Junaid Jamshed t-shirt
"I'm over the moon," said stand-in Sri Lankan captain Dinesh Chandimal. "After losing the Test series, I'm really happy with the way we played."
Opening batsman Niroshan Dickwella made 68 off 51 balls before Seekkuge Prasanna stunned the home crowd with an unbeaten 37 off 16 deliveries, which seals the victory for the visitors.
Dickwella was named man of the match and man of the series after making useful contributions in all three matches.
Power-hitter Miller leads South Africa to triumph
South Africa dropped five catches - including three off successive balls in one over from Wayne Parnell - and were hampered by an injury to fast bowling discovery Lungi Ngidi, who left the field after bowling only two of his potential four overs.
Sri Lanka, though, could take pride in overcoming the loss of injured captain Angelo Mathews, who played a match-winning innings to level the series in the second match in Johannesburg last Sunday. "Angelo is a big part of this win," said Chandimal.
The hosts captain Farhaan Behardien laments lapses in the field, which eventually cost the match. "It's a bitter pill to swallow," said Behardien. "I thought we had enough runs on the board but the dropped catches put us on the back foot and losing Lungi Ngidi wasn't ideal."
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ