Both the teams are in a must-win situation, with South Africa having secured six points from six matches and England four from five. England will play the West Indies in their last game here on Friday.
Defending champions Australia (12 points), New Zealand (10) and Sri Lanka (8) have already qualified for the semi-finals.
South Africa made two changes from the team which lost to New Zealand in their previous game, bringing in Justin Kemp in place of spinner Robin Peterson and Charl Langeveldt replacing Mahkaya Ntini
England retained the side which beat Bangladesh in the last match.
South Africa: Graeme Smith (capt), AB de Villiers, Jacques Kallis, Herschelle Gibbs, Ashwell Prince, Justin Kemp, Mark Boucher (wk), Shaun Pollock, Andre Nel, Andrew Hall and Charl Langeveldt. Coach: Mickey Arthur.
England: Michael Vaughan (capt), Ian Bell, Andrew Strauss, Kevin Pietersen, Paul Collingwood, Andrew Flintoff, Ravi Bopara, Paul Nixon (wk), Sajid Mahmood, Monty Panesar and James Anderson. Coach: Duncun Fletcher.
Umpires: Billy Bowden (NZ), Steve Bucknor (WI) Third umpire: Simon Taufel (Aus)
Match referee: Ranjan Madugalle (SL).