The West Indies lost left-arm spinner Fabian Allen to a shoulder injury suffered in the field as it defended its total of 167 for six.
Dwayne Bravo stepped up and took four for 19, including the crucial wicket of Quinton de Kock for 60, as the West Indies restricted South Africa to 146 for 9.
Captain Kieron Pollard also played a vital role with the ball to compensate for Allen’s loss, taking one for 24 from his four overs.
Chief scores
West Indies: 167/6 in 20 overs (K. Pollard 51 n.o, P. Simmons 47)
South Africa: 146/9 in 20 overs (Q. De Kock 60, D. Bravo 4/19). (Agencies)