After they lost the toss and were sent in to bat, the Proteas reached 280/6 from their 49 overs, with the start having been delayed by a waterlogged pitch.
De Kock, who made a century in the opening match at the Wanderers on Thursday, smashed 106 runs off 118 balls before he swept a Ravichandran Ashwin delivery straight into the hands of Rohit Sharma in the 36th over.
He shared a first-wicket partnership of 194 runs with Amla, who stuck around for another eight overs.
Amla eventually got an edge off a bouncer from paceman Mohammed Shami, one ball after reaching his 12th career ton, and was caught behind for 100 runs from 117 deliveries.
Shami was the best of the Indian bowlers, who were far more composed after struggling to contain the hosts at the Wanderers, taking 3/48.
India need 281 runs to level the three-match series.