Aaron Phangiso led the bowling attack, taking 3/39 to help restrict the visitors to 202/9 after putting them in to bat first.
Opener, Usman Ghani top scored with 54 from 65 balls (six fours, two sixes), while Rahmat Shah and Najibullah Zadran chipped in with 32 and 28 runs respectively.
Junior Dala (2/42) also made a handy contribution with the ball, adding two wickets to the tally on the home side’s road to victory.
Reeza Hendricks and Henry Davids got South Africa’s reply off to a solid start with a 88-run opening stand before the latter’s dismissal for 41 in the 14th over.
Hendricks went on to hit 76 at a run a ball (seven fours, one six) before Shah (2/44) struck, removing him in the 26th.
It was all left to the captain, Khaya Zondo and Farhaan Behardien who returned unbeaten scores of 32 and 30 to give their side a strong win in the end.
South Africa will take on India A in the final on Tuesday, 8 August at the same venue.