De Kock, a few days short of his 21st birthday, hit a thrilling 135 off 121 balls in a South African total of 358 for four after the hosts were sent in to bat.
India's top order was then blown away by the South African fast-bowlers and some sharp fielding.
Despite an innings of 65 by Dhoni, they could only manage 217 in reply, giving South Africa a win by 141 runs and a 1-0 lead in the three-match series.
Man-of-the-match De Kock and Hashim Amla (65) shared a first-wicket partnership of 152 which laid the foundation for some brutal hitting by De Kock, captain AB de Villiers and JP Duminy in the closing overs.
Shami was the most successful Indian bowler, taking three for 68.
"I was disappointed with the way we bowled," said Dhoni. "More than the death bowling I was disappointed with our new ball bowling. It was not a 350 wicket."
India were soon under pressure as Dale Steyn started with two maiden overs to Rohit Sharma, who played and missed at a succession of fast away-swingers.
Shikhar Dhawan hit three boundaries off Lonwabo Tsotsobe but tried to pull the first ball he faced from Morne Morkel and was beaten by the extra pace and bounce, ballooning a catch to De Kock off a top edge.
Ryan McLaren struck twice in three balls, having Virat Kohli caught at slip for an aggressive 31 and then bowling Yuvraj Singh with a yorker after softening him up with a bouncer.
Sharma was run out by a direct hit from David Miller at cover in the next over and India, at 65 for four, were in a hopeless position.
"We feel we are going to win trophies in the future and that is how we're going to play," said De Villiers.
"Quinton showed great maturity for someone his age and we showed a lot of flair."
COMMENTS (5)
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ
A (bitter) reality check for 'mighty' India batting line up. Welcome to the world away home.
SA never went on scoring 270+ plus runs against Pakistan in all the matches they played recently while Indian, club level bowling proved to be a piece of cake for them. It will be fun seeing Injuns getting thrashed.
A bad day at office but lets hope that this trend does not continue in the remaining matches. The top Indian batsmen looked more like school boys in front of the pace battery of SA with the double centurion Rohit Sharma missing five balls in one Steyn's over.
After what Styen did to "great Indian batting", i feel sorry for Hafeez. :) Styen is world's best fast bowler and there is no shame to get out of his bowling.