Rassie van der Dussen hit an unbeaten 94 off 60 balls as the Proteas posted 189-2 against England in Sharjah.
He was well supported by Aiden Markram (52* off 25 balls) as they put on an attacking unbeaten partnership of 103 for the third wicket.
To reach the semi-finals at Australia’s expense – on net run rate – South Africa will need to win the match by 58 runs (restrict England to 131 or fewer).
England will qualify for the semi-finals if they reach 87.
England elected to field first and Moeen Ali struck early after he bowled Reeza Hendricks for two.
Quinton de Kock and Van der Dussen rebuilt the innings with their second-wicket stand of 71.
Adil Rashid sent back De Kock for 34 with his leg spin, but Van der Dussen stood firm and mixed the right dose of caution and aggression to reach his half-century in 37 balls.
He then combined with Markram to take the assault to the opposition bowlers as he attacked Chris Woakes in his fourth over – the 16th of the innings – hitting three sixes between them as 21 runs were added to the Proteas total.
Markram reached his fifty off 24 balls with a six off Chris Jordan as he hit two fours and four sixes.
© Agence France-Presse