Champions Zimbabwe reached the last stage of the competition on Wednesday with a 3-1 win on penalties over Lesotho, with Polokwane City goalkeeper George Chigova saving two kicks in the shootout, having also saved three in the quarter-final defeat of Botswana on Sunday.
Zambia advanced in the event with a 1-0 win over minnows Madagascar courtesy of a 38th minute goal from Lazarous Kambole.
Bafana lost their tournament opener 1-0 to Madagascar before bouncing back with a 4-1 thumping of Namibia in the plate section.
Stuart Baxter's men will face Botswana at 17h00 at New Peter Mokaba Stadium on Friday before Madagascar and Lesotho battle for bronze at 19h30.
The final starts at 15h00 on Saturday at the same venue.