The Proteas crumbled from 116/1 to 191 all out in good batting conditions at The Oval before Shikhar Dhawan (78) and Virat Kohli (76 not out) shared a fluent partnership of 128 to lead
The defending champions followed hosts
Amla raised the tempo with a six over mid-wicket but, on 35, he tried to cut spinner Ravichandran Ashwin and nicked a sharp catch to wicket-keeper Mahendra Singh Dhoni.
The Proteas were 94/1 after 20 overs and De Kock reached a tidy half-century off 68 balls before he was deceived by spinner Ravindra Jadeja and bowled for 53.
AB de Villiers, on 16, perished trying to pinch a quick single and David Miller (one) was dismissed in farcical circumstances with both batsmen stranded at the same end to leave the Proteas struggling at 142/4.
Their hopes of a substantial total rested on the shoulders of Faf du Plessis, but his scratchy knock of 36 ended when he dragged a ball from medium-pacer Hardik Pandya on to his stumps.
Chris Morris, Andile Phehlukwayo, Kagiso Rabada and Morné Morkel soon joined him back in the pavilion, and the innings petered out in the 45th over when Imran Tahir became the third run-out victim.
Kohli joined Dhawan and after surviving hostile spells from Morkel and Rabada, the pair started to play with more freedom.
Dhawan crunched Morris over mid-on for his eighth four to reach his 50, and the left-hander played some brutal strokes before he skied Tahir to Du Plessis at long-off.
Kohli remained in total control, however, and Yuvraj Singh hoisted JP Duminy over mid-wicket for a huge six to complete the most comfortable of wins for his team.