Jacques Kallis produced the most economical bowling performance by a South African in the 20-over format with 4 for 15 as the Proteas hammered Zimbabwe by 10 wickets, eliminating them from the tournament.
Zimbabwe needed to win to avoid an early exit after they lost the first match by 82 runs against Sri Lanka.
Kallis led the seam attack and restricted Zimbabwe to 93 for 8 and South Africa openers Richard Levi (50) and Hashim Amla (32) eased to 94 for 0 in only 12.4 overs.
South Africa will meet Sri Lanka in the last Group C match on Saturday with both teams already qualified for the Super Eights.
Kallis got rid of both Stuart Matsikenyeri (11) and Elton Chigumbura (0) with successive deliveries and returned to have Graeme Cremer and top-scorer Craig Ervine (37) caught behind.
Ervine hit four of the six boundaries in Zimbabwe's innings as all the South African seamers got appreciable bounce and pace at the Mahinda Rajapaksa International Cricket Stadium.
The Morkel brothers, Morne and Albie, caused the early damage after South Africa won the toss. The pair reduced Zimbabwe to 16 for 3 before Kallis bowled a double-wicket maiden over to leave Zimbabwe reeling.
Zimbabwe's final total of 93 was their second-lowest ever score in Twenty20s – surpassing only the 84 they scored against New Zealand in Guyana in the 2010 World Twenty20.