South Africa beat India by 31 runs to go 1-0 up in the three-match series. India were bowled out for 265 runs in the chase of 297.
Virat Kohli, Shikhar Dhawan and Shardul Thakur scored fifties for the visitors but that was not enough to get to the winning mark.
The former captain Kohli added 92 runs with opener Shikhar Dhawan for the second wicket. India suffered a batting collapse after that partnership.
Earlier, South Africa posted 296 runs in the first innings as Temba Bavuma and Rassie van der Dussen scored dominating tons in the series opener.
South Africa 296-4 in 50 overs (T. Bavuma 110, H. van der Dussen 129 not out; J. Bumrah 2-48)
India 265-8 in 50 overs (S. Dhawan 79, V. Kohli 51, S. Thakur 50 not out; L. Ngidi 2-64, T. Shamsi 2-52, A. Phehlukwayo 2-26)
Result: South Africa won by 31 runs
Series: South Africa lead the three-match series 1-0
Toss: South Africa
January 21, Paarl
January 23, Cape Town