New Zealand were put in to bat first and were bowled out for 230.
The players will undergo late fitness tests ahead of Saturday’s triangular series final against Australia.
Zimbabwe needed to overhaul South Africa's total in just 29 overs to reach the final but fell well short.
A brisk half-century from AB de Villiers put South Africa in position to declare their second innings.
South Africa and India face off in the ICC World Twenty20 semi-final in Dhaka on Friday.
The Aussies were set 448 for victory after Graeme Smith declared on 270 for 5 before lunch.