Varun Chakravarthy's fifer (5/17) went in vain as an unbeaten 47 from Tristan Stubbs helped South Africa level the four-match T20I series 1-1 with a three-wicket win over India in the second game at Gqeberha on Sunday.
It wasn't easy for the hosts to chase down a modest target of 125 runs. At 66/6, the game was nearly out of their control, before Stubbs stepped up. Gerald Coetzee's unbeaten 19 ensured the hosts secured the winning runs with an over to spare.
Earlier, after dominating the first T20I in Durban, India found the Gqeberha pitch tough to handle as South Africa restricted them to 124/6.
Opener Sanju Samson, who was hoping to become the first Indian to smash a hat-trick of T20I centuries, was dismissed for a duck by Marco Jansen. India were 15/3 before brief partnerships from the middle order guided them past 100.
Axar Patel, who was moved up the order, appeared the most assured batter on the night for the visitors as he made 27. He was unlucky to be run out as he had backed up a bit too far as Hardik Pandya's straight drive took a deflection off Peter Nqabayomzi's hand before rattling the stumps. Pandya top scored with an unbeaten 39 off 45.
South Africa skipper Aiden Markram had won the toss a second time. Reeza Hendricks replacing Patrick Kruger was the only change for the hosts while India were unchanged from the 61-run win in the first match. The two sides will play two more T20Is in the series.