De Kock, playing his 14th ODI, made 135 runs off 121 balls, with 18 fours and three sixes, before he was caught and bowled by part-timer Virat Kohli in the 42nd over.
The 20-year-old left-hander was well supported by fellow opener Hashim Amla, who made 65 in a 152-run stand for the first wicket.
After De Kock was removed, Proteas captain AB de Villiers, who hit a quickfire 77 off 47 deliveries, and JP Duminy, who smashed an unbeaten 59 from 29, carried the hosts to a formidable total.
Seamer Mohammed Shami led the touring side’s bowling attack, taking 3/68.
India, who won the toss and chose to bowl first, need 359 runs to win.