Sri Lanka have won their first series on South African soil after beating their opponents by five wickets in the third T20.
AB de Villiers struck 63 for the hosts on his return to international cricket but Niroshan Dickwella chalked up a 68 as they chased 170 for a 2-1 series victory.
Dickwella shared in a 71-run stand with Dhananjaya de Silva (19) before Seekkuge Prasanna's 37 saw Sri Lanka over the line with a ball to spare.
They were helped by some sloppy fielding from South Africa, who dropped five catches in total, three of which came consecutively.
The hosts also lost four wickets in four overs, although Mangaliso Mosehle's unbeaten 32 from 15 had put them in good stead at 169-5.
However, three clean sixes from Prasanna's 16-ball innings paved the way for Asela Gunaratne to cap off the victory with two boundaries off fast bowler Dane Paterson.