England, leading the five-match series 2-0, fielded an unchanged team for the third successive match.
South Africa made one change from the team beaten by five wickets in Port Elizabeth on Saturday. All-rounder David Wiese replaced batsman Rilee Rossouw.
Teams: South Africa: AB de Villiers (captain), Hashim Amla, Quinton de Kock (wkt), Faf du Plessis, JP Duminy, Farhaan Behardien, David Wiese, Kagiso Rabada, Kyle Abbott, Morne Morkel, Imran Tahir.
England: Eoin Morgan (captain), Jason Roy, Alex Hales, Joe Root, Ben Stokes, Jos Buttler (wkt), Moeen Ali, Chris Jordan, Adil Rashid, David Willey, Reece Topley.