South Africa rode on captain AB de Villiers’ 54 to make 186-6 before four wickets from Dale Steyn restricted the Black Caps to 177-8.
Shakib’s 52 in vain
Meanwhile, in another T20 warm-up tie Bangladesh went down to Ireland despite Shakib Al Hasan’s hurricane 52 from 23 balls that was studded with three fours and five sixes.
Ireland made 164-6 after being asked to take first strike, with Paul Stirling hitting a 41-ball 71 with five fours and as many sixes. Ed Joyce scored 39 from 36 balls.
Shakib and Tamim Iqbal (35) took Bangladesh to a comfortable 105-2, before four wickets fell for 21 runs to allow Ireland to bounce back.
West Indies opener Chris Gayle warmed up for the tournament with an unbeaten 65 off 48 balls as the West Indies eased past Afghanistan’s modest 122-7 in the 16th over.