India beat South Africa by 16 runs in a high-scoring Twenty20 international in Guwahati on Sunday to take an unassailable 2-0 lead in the three-match series as David Miller's unbeaten century went in vain.
Chasing an imposing 237, the visitors fell short as India's imperious batting performance helped them clinch victory as well as their first home T20 series win over South Africa.
Miller struck a fine 106 off 47 balls and his unbeaten 174-run stand for the fourth wicket with opener De Kock threatened to take the game away from India but the task ultimately proved too much.
South Africa were reeling at 5/2 at the end of the second over after Temba Bavuma and Rilee Rossouw fell for ducks to Arshdeep Singh. Aiden Markram then hit 33 from 19 in a valiant effort but De Kock struggled to a 48-ball 69.
Play was stopped in the third over of the chase after one of the four floodlight towers in the stadium went out. It was the second interruption of the match after a snake slithered onto the field in a bizarre turn of events early in India's innings.
India were put in to bat and smashed over 150 runs in boundaries to reach a commanding 237-3, thanks to Suryakumar Yadav's blazing 22-ball 61 after opener KL Rahul had got off the blocks in a flash to make 57 from 28.
Keshav Maharaj provided the visitors with a breakthrough by ending the 96-run opening stand, dismissing skipper Rohit Sharma (43) in the 10th over before trapping Rahul leg before wicket in the 12th to finish with an excellent 2/23.
Yadav joined Virat Kohli on the crease with the momentum seemingly shifting towards South Africa but did not take long to settle in, continuing his sparkling form to bring up a half century in only 18 balls.
Kohli finished unbeaten on a 28-ball 49 and Dinesh Karthik smacked 17 in his seven-ball cameo as India reached their fourth-highest total in T20s.
The final match of the series will be played in Indore on Tuesday.
Why Rohit is thinking of not playing SKY until Oct 23
Kohli, SKY script T20 history in Guwahati
Bumrah injury: Coach Dravid 'hoping for the best'
India to undergo training camp in Australia ahead of WC