South Africa strike bowler Dale Steyn was ruled out with a groin injury having recovered from a side strain to play against the West Indies in their last group game. Rory Kleinveldt has replaced him.
England brought in paceman Steven Finn for Tim Bresnan while spinner Graeme Swann again missed out with a calf injury so James Tredwell will continue to deputise.
Teams:
England - Alastair Cook (captain), Ian Bell, Jonathan Trott, Joe Root, Eoin Morgan, Ravi Bopara, Jos Buttler (wicketkeeper), Stuart Broad, James Tredwell, Steven Finn, James Anderson.
South Africa - Hashim Amla, Colin Ingram, Faf du Plessis, AB de Villiers (captain, wicketkeeper), JP Duminy, David Miller, Ryan McLaren, Rory Kleinveldt, Robin Peterson, Chris Morris, Lonwabo Tsotsobe.