Unbeaten tournament leaders India, fresh from skittling out Sri Lanka for just 55 in Mumbai on Thursday, were unchanged for this heavyweight clash at Eden Gardens as they look for an eighth win eight games.
India's Virat Kohli turned 35 on Sunday and the star batsman's legion of fans will hope he can mark the occasion by equalling Sachin Tendulkar's all-time one-day international record of 49 hundreds after he just fell short with 88 against Sri Lanka.
Both India and South Africa, currently second in standings, are already into the last four and will stay on course to meet again in the November 19 final in Ahmedabad if they retain their current positions.
South Africa, whose place in the knockout phase was assured by Pakistan's defeat of New Zealand on Saturday, have lost just once when suffering a shock defeat by the Netherlands.
They have looked more fallible chasing than setting a target, however.
South Africa made just one change to the side that overwhelmed New Zealand by 190 runs in Pune on Wednesday, with left-arm wrist-spinner Tabraiz Shamsi replacing paceman Gerald Coetzee.
India: Rohit Sharma (capt), Shubman Gill, Virat Kohli, Shreyas Iyer, KL Rahul (wkt), Suryakumar Yadav, Ravindra Jadeja, Kuldeep Yadav, Jasprit Bumrah, Mohammed Shami, Mohammed Siraj
Proteas: Quinton de Kock (wkt), Temba Bavuma (capt), Rassie van der Dussen, Aiden Markram, Heinrich Klaasen, David Miller, Marco Jansen, Keshav Maharaj, Kagiso Rabada, Lungi Ngidi, Tabraiz Shamsi
Umpires: Kumar Dharmasena (SRI) and Paul Reiffel (AUS)
TV Umpire: Chris Brown (NZL)
Match Referee: Andy Pycroft (ZIM)