Batting first, the South Africans posted a total of 245 all out with Jason Rowles top-scoring with 114 off 113 deliveries but did not receive the necessary support from the rest of the order.
The next best individual score came number 6 Daniel Bosman, who struck 31 while opener Adnaan Lagadien hita quick-fire 25 at the top of the order.
India got off to a rapid start in the run-chase when captain Vaibhav Suryavanshi smoked 68 off just 24 balls as the visitors raced to 103-2 in the first 11 overs.
The game was then delayed due to a thunderstorm and when the players returned the target was adjusted to 174 in 27 overs.
Even though Suryavanshi was out, Vedant Trivedi (31 not out) and Abhigyan Kundu (48 not out) made India reached the total in 24th over.
The took and unassailable 2-0 lead in the three-match series with final game also in Benoni on Wednesday.
Both teams are preparing for the ICC U19 World Cup that kicks off 15 January and will be co-hosted in Zimbabwe and Namibia.