South Africa defeated Swaziland 5-1 in a one-sided affair in the first Last 4 match, before Botswana missed a host of opportunities as they drew 0-0 with guest nation DR Congo.
The Zebras, for the second round in a row, triumphed 5-4 on the penalty-shootout to book a first ever visit to the COSAFA Castle Cup final.
Thabang Sesinyi was the major culprit as he hit the woodwork twice and also spurned two more great chances.
But like in their quarterfinal against hosts Namibia, Botswana were confident in the shoot-out and when Guy Basisila had his penalty saved by Botswana keeper Mwampelo Masule, the Zebras kept their cool to complete the job.
South Africa booked their place in the final with victory over Swaziland that was truly a game of two halves.
Swaziland were the better side in the opening period having held South Africa well and went into the break with a 1-0 lead thanks to a goal from Tony Tsabedze.
The veteran winger enjoyed a long career in the PSL and showed great composure with his finish having been set on goal by Felix Badenhorst.
But the game changed five minutes after halftime when Swaziland defender Siyabonga Mdluli received a second yellow card and was sent-off.
Thabiso Kutumela drilled the resultant free-kick home and South Africa were level and a man to the good.
They poured forward in search of more goals and were rewarded as Lebogang Phiri gave them, the lead with a deflected shot.
Menzi Masuku then got the first of his two goals and Judas Moseamedi waltzed through a static Swaziland defence as South Africa recorded a handsome win.
Namibia will now meet Zambia in the COSAFA Castle Cup Plate Final on Friday, after which Swaziland and DR Congo play for bronze in the main Cup competition on Saturday.
After that will be the Cup final as Botswana chase a first COSAFA Castle Cup title and South Africa seek to join Zambia and Zimbabwe as four-time winners.
WEDNESDAY’S CUP SEMIFINAL RESULTS
South Africa 5 (Kutumela 52’, Phiri 57’, Masuku 60’, 83, Moseamedi 75’) Swaziland 1 (Tsabedze 38’)
Botswana 0 DR Congo 0 – Botswana win 5-4 on penalties
FRIDAY’S PLATE FINAL FIXTURE
Namibia vs Zambia (17h00 local; 16h00 GMT) – Sam Nujoma Stadium
SATURDAY’S CUP THIRD-PLACE PLAYOFF
Swaziland vs DR Congo (15h00 local; 14h00 GMT) – Sam Nujoma Stadium
SATURDAY’S CUP FINAL
South Africa vs Botswana (17h30 local; 16h60 GMT) – Sam Nujoma Stadium