South Africa have won the toss and elected to field.
India also wanted to bowl but with the dry wicket, captain Virat Kohli says at the toss he is optimistic despite losing the toss.
The Men in Blue still have a two-match cushion in the six-ODI series. They lead 3-1 after winning the first in Durban by six wickets, the second in Centurion by nine wickets and the third in Cape Town by 124 runs.
The Proteas bounced back by winning the rain-affected and lightning-struck Pink ODI in Johannesburg by five wickets.
India: Virat Kohli (capt), Shikhar Dhawan, Rohit Sharma, Ajinkya Rahane, Shreyas Iyer, Manish Pandey, Dinesh Karthik, Kedar Jadhav, MS Dhoni (wk), Hardik Pandya, Yuzvendra Chahal, Kuldeep Yadav, Axar Patel, Bhuvneshwar Kumar, Jasprit Bumrah, Mohammed Shami, Shardul Thakur.
South Africa: Aiden Markram (capt), Hashim Amla, JP Duminy, Imran Tahir, David Miller, Morne Morkel, Chris Morris, Lungisani Ngidi, Andile Phehlukwayo, Kagiso Rabada, Tabraiz Shamsi, Khayelihle Zondo, Farhaan Behardien, Heinrich Klaasen (wk), AB de Villiers.