Colin Ingram's 73 was the centrepiece of South Africa's 230 for six for against the West Indies in their winner-takes-all Champions Trophy match at Cardiff on Friday.
Whichever team wins will join already-qualified India as one of the two Group B sides going through to the semi-finals.
South Africa, sent into bat, made a strong start in a match reduced by rain to 31 overs per side.
Left-handed opener Ingram struck straight sixes off spinner Sunil Narine and medium-pacer Darren Sammy during a 46-ball fifty.
But it was back-up spinner Marlon Samuels, primarily a batsman, who broke an opening partnership worth 80 when, with his first ball, he had Hashim Amla caught on the drive at the third attempt by Chris Gayle at short extra-cover.
South Africa captain AB de Villiers looked in fine touch while making 37 off just 26 balls but his innings ended when a full-blooded pull off Ravi Rampaul was brilliantly caught one-handed by Darren Bravo, diving high to his right, at short mid-wicket.
Faf du Plessis (35) and David Miller, whose 38 included three sixes, added useful late runs in a fifth-wicket stand of 68.
The minimum number of overs required to declare a result is 20 per side -- a format that would appear to favour the West Indies given they are the reigning World Twenty20 champions.
If more rain means that mark cannot be reached, South Africa will go through to the last four because of their superior net run-rate (+0.41 to West Indies' -0.08).