JP Duminy hit a whirlwind 30 off 23 balls and David Miller smacked a belligerent 36 off 21 balls as elected to bat South Africa managed a total of 145-6 and restricted the hosts to 123-7 thanks to an alluring fielding display.
South Africa’s series victory was a sweet revenge from Sri Lanka, who won the preceding one-day series 4-1.
Once Kumar Sangakkara once again fought a lone war for Sri Lanka with an enterprising 39 off 35 balls but he was the only one of three batsmen who passed the 20-mark.
Proteas, who registered a thrilling 12-run victory in the opening T20 at Colombo two days back, will definitely aim to complete the whitewash when the both sides will meet at Hambantota on Tuesday.
A South African victory in the final game will mean that Sri Lanka will lost their top-spot to second-placed Pakistan.
Left-arm seamer Lonwabo Tsotsobe rocked Sri Lanka early in the innings by removing Mahela Jayawardene and Chandimal early in the innings. Both batsmen fell to catches by gloveman Quinton de Kock.
Morkel picked up the key wicket of Sangakkara, caught by David Wiese in covers before edging Nuwan Kulasekara behind the stumps.
Thisara Perera hit an unbeaten 22 as the tourists restricted Sri Lankan batsmen from making the runs-rots.
Earlier, South Africa failed to get off to a convincing start after opting to bat and slumped to 48-3 in the ninth over before Duminy and Miller shared a crucial 38-run stand to set up a fighting total.
For Sri Lanka both seamer Kulasekara and Sachithra Senanayake chipped in two wickets piece.