Heinrich Klaasen hit a hundred as South Africa posted a mountain-like 399 runs against England in the 20th game of the World Cup on Saturday.
The defending champions now need 400 runs to win this contest at the Wankhede Stadium, Mumbai.
Being asked to bat, the Proteas lost Quinton de Kock (4) in the second ball of the innings but they came back strongly making a 121-run stand in the second wicket between Reeza Hendricks (85) and Rassie van der Dussen (60).
South Africa then made a huge 151-run stand in the sixth wicket between Heinrich Klaasen (109) and Marco Jansen (75) to post the gigantic total. Standing captain Aiden Markram (42) played a crucial knock in the middle.
Reece Topley got the highest three wickets for England while Gus Atkinson and Adil Rashid took two wickets each.
Chokers South Africa suffered an unexpected defeat against the Netherlands while defending champions England lost against Afghanistan and had two defeats in three games.
England made three changes in the playing XI as Ben Stokes, David Willey and Gus Atkinson came in.
There was just one forced change for South Africa, with Reeza Hendricks replacing the injured Bavuma.
South Africa: Quinton de Kock(w), Reeza Hendricks, Rassie van der Dussen, Aiden Markram(c), Heinrich Klaasen, David Miller, Marco Jansen, Gerald Coetzee, Keshav Maharaj, Kagiso Rabada, Lungi Ngidi.
England: Jonny Bairstow, Dawid Malan, Joe Root, Ben Stokes, Harry Brook, Jos Buttler(w/c), David Willey, Adil Rashid, Gus Atkinson, Mark Wood, Reece Topley.