De Kock scored 135 while Steyn and McLaren took three wickets each as India were bundled out for 217 in 41 overs chasing 359.
India were shown what awaits them in the next three and half weeks in South Africa as the visitors were completely outplayed in all three departments by the hosts, losing the first ODI easily by 141 runs in Johannesburg on Thursday.
South Africa taught their Indian counterparts plenty of lessons. While their batsmen made full use of the inexperienced Indian attack, posting a mammoth 358 for 4 in 50 overs, their bowlers displayed fine skills of swing bowling, defeating the Indian batsmen's bat on numerous occasions.
With MS Dhoni winning the toss in seaming conditions, it appeared as though India had got an edge, but that was short-lived as the South Africa openers - Quinton de Kock (135) and Hashim Amla (65) - kept them at bay, sharing 152 in 29.3 overs.
While Amla looked a little off-colour early on, De Kock, the 20-year-old South Africa wicketkeeper, was sensational from the outset - flicking, cutting and pulling the Indian pacers who were inconsistent with their line and length. The little left-hander hardly gave the India a sniff, scoring his second ODI hundred off 101 balls.
Mohammad Shami was by far the pick of the Indian bowlers, putting doubts in the minds of South Africa batsmen with his pace and bounce. He provided India two quick breakthroughs in the middle period when he had the wickets of Amla and Jacques Kallis (10).
India might have thought they had a chance of restricting the hosts to a low score when Virat Kohli ended De Kock's 121-ball stay with a return catch. But the onslaught that followed thereafter by South Africa skipper AB de Villiers (77 off 47) and JP Duminy (59 off 29) could possibly have shattered whatever morale the Indians had until that point.
The two batsmen, with orthodox as well as innovative strokes, added 105 runs off just 46 deliveries and set India a mammoth target that looked impossible to chase down the moment Dale Steyn started the proceedings for the hosts.
Steyn in rhythm is a sight to behold and the pacer geared up to deliver his best from the beginning, swinging the ball away from Rohit Sharma, bowling two back-to-back maiden overs to the right hander.
Rohit had no clue how to tackle Steyn's swing and he got off the mark on his 17th delivery, and too with a thick outside edge for a couple in the off side. Shikhar Dhawan looked as though he was unaffected by what was happening at the other end and smacked Lonwabo Tsotsobe for three boundaries. That prompted De Villiers to bring Morne Morkel - one of the five pacers South Africa included for the contest - into the attack.
The lanky pacer got Dhawan off his first ball when the left-hander mistimed a pull and De Kock taking a good running catch. Virat Kohli - the highest run getter this year in ODIs - was fortunate when an over-enthusiastic De Kock spilled a regulation chance off Morkel when he was on just two. He drove and cut thereafter, before edging Ryan Mclaren to Kallis in first slip.
McLaren played with Yuvraj Singh's mind, welcoming the left-hander with a bouncer that hit his helmet and then bowling a pitched-up delivery that went through the gate and hit the stumps.
Rohit's vigil, which lasted 43 balls, ended when he was run out with a brilliant throw from David Miller. Suresh Raina, who was the culprit in pushing Rohit for a quick single, was himself run out when Steyn's perfect throw from deep square leg found him short of his crease.
Dhoni and Jadeja delayed the inevitable, with the former scoring 65 and the latter making 29. But India had been the second best team throughout the contest and South Africa ended up as worthy winners when Steyn took his third wicket to conclude a memorable night for the hosts.