Spinners Tabraiz Shamsi and Aiden Markram took three wickets each as South Africa bowled out Sri Lanka for 103 in the second T20I on Sunday.
Quinton de Kock scored an unbeaten 58 (48b, 7x4) to take the visitors home in the 15th over.
The win gave it a 2-0 lead in the three-match series.
The scores: Sri Lanka 103 in 18.1 overs (Kusal Perera 30, Bjorn Fortuin 2/12, Aiden Markram 3/21, Tabraiz Shamsi 3/20) lost to South Africa 105/1 in 14.1 overs (Quinton de Kock 58 n.o.).