Umpires called the match off after second rain interruption that gave SA a 48-run win to level the series 2-2.
Port Elizabeth: Virat Kohli struck a sparkling 87 not out and had a hand in three dismissals but couldn't stop South Africa from winning the fourth one-day international against India at St George's Park on Friday.
South Africa won the rain-affected game by 48 runs on the Duckworth/Lewis method to level the five-match series at 2-2, making Sunday's final match at Centurion the decider.
JP Duminy was South Africa's star, making an unbeaten 71 and leading a recovery after the hosts suffered a top-order collapse.
South Africa scored 265 for six after winning the toss while India were struggling at 142 for six after 32.5 overs when rain ended play.
"We needed to play well tonight," said South African captain Graeme Smith.
"We had a few moments where our brains didn't work but we managed to show a lot of skill and determination to get to a good total."
India captain Mahendra Singh Dhoni said, "If we had restricted them to 240, we would have fancied our chances."
On Sunday's decider, he added, "The team that handles the pressure better will come out on top."
The result was harsh on Kohli, who held a superbly-judged low slip catch and was involved in two run-outs in the South African innings before coming out to bat at number three after India lost their first wicket in the second over with only one run on the board.
Kohli was the only batsman to master South Africa's bowling attack, making his runs off 92 balls with seven fours and two sixes.
The only partnership of note was with Suresh Raina, who made 20 in a fourth-wicket stand of 63 before he was drawn out of his crease by left-arm spinner Robin Peterson, enabling AB de Villiers to make a smart stumping.
India had lost their first three wickets for 49 runs, with Smith taking a sensational catch to dismiss Yuvraj Singh, who top-edged a lap shot against off-spinner Johan Botha. Smith raced from slip to hold a diving catch at short leg.
India's hopes nosedived after Raina was out, with Dhoni and Yusuf Pathan falling in quick succession.
Dhoni was Peterson's second victim, playing an awkward stroke to cover.
Pathan, who was India's match-winner in the third game with a hard-hit 59, showed his vulnerability to fast bowling when he was squared up by Morne Morkel and edged a catch to de Villiers.
Rain stopped play with India on 137 for six after 31.3 overs. Play resumed after more than an hour but only another eight balls were bowled before more rain ended the match.
Part-time spinner Yuvraj Singh took three wickets and sparked a top order batting collapse before JP Duminy led a recovery. Duminy anchored the innings after four wickets fell in four overs to make his 71 off 72 balls.
South Africa made a good start, reaching 106 for one in the 20th over on a slow pitch in windy conditions.
But Dhoni brought Yuvraj into the attack to bowl his slow left-armers and he made a breakthrough when he had Morne van Wyk caught at slip for 15.
In the next over, Hashim Amla was needlessly run out attempting an unlikely second run after scoring a fluent 64. Yuvraj then had de Villiers caught behind before Faf du Plessis became a second run-out victim.
Duminy and Johan Botha (44) put on 70 for the sixth wicket before Duminy found another useful partner in Robin Peterson, who made 31 in a seventh-wicket stand of 54.
Yuvraj, who had bowled only 13 overs in the previous three matches conceding 65 runs, followed up with the wicket of Botha and finished with three for 34 in eight overs.