Proteas star batter Quinton de Kock struck a brilliant ODI century to set up a competitive total in the third and final ODI against India at Newlands.
LIVE SCORECARD | Proteas v India - 3rd ODI
In the blistering Cape Town heatwave, De Kock notched a splendid 124 as the Proteas were bowled out for 287 off the last ball of the innings.
After winning the toss and asking the Proteas to bat in the dead-rubber, Indian bowler Deepak Chahar struck early as Janneman Malan edged behind for a single with the score on 8.
Captain Temba Bavuma was then run out for 8 off 12 balls as the Proteas moved to 34/2.
The inconsistent form of Aiden Markram (15) remains a worry for South African as the No 4 pulled a short delivery from Chahar to find the fielder at deep midwicket.
The Proteas sat on 70/3 as Rassie van der Dussen joined De Kock in the middle where the two built a 144-run fourth-wicket partnership to put South Africa in the driving seat.
De Kock, who scored 78 in Paarl on Friday, brought up his second consecutive half-century off 59 balls before racing to his 17th ODI century in just 108 balls.
After bringing up his ton, De Kock surpassed Australian great Adam Gilchrist to sit second for the most ODI centuries by a wicketkeeper-batsman with Kumar Sangakkara on top of the list with 23 tons.
De Kock took on the Indian bowlers in the sweltering heat, smashing 12 fours and two sixes before pulling Jasprit Bumrah and getting caught at square leg for 124 off 130 balls.
Shortly after bringing up his 10th half-century and De Kock's departure, the in-form Van der Dussen lost his wicket for the first time this ODI series as he fell for a well-played 52 off 59 balls to Yuzvendra Chahal (2/53).
Two new batters were in the middle with all-rounder Andile Phehlukwayo only making four runs before being run out by Shreyas Iyer and Rishabh Pant.
David Miller and Dwaine Pretorius contributed a handy 44-run partnership before Pretorius, who was the only Proteas change in the third ODI, was caught for 20 off 25 balls off the bowling of Prasidh Krishna.
The Proteas lower-order collapsed at the end of their innings as spinner Keshav Maharaj was caught for six to give Bumrah his second wicket of the day.
Krishna wrapped up the Proteas tail as he took the wicket of Miller, who scored a vital 39 off 38 balls, and then saw the back of Sisanda Magala (0) to end South Africa's innings with one ball remaining.
Krishna was the pick of the Indian bowlers as he ended with figures of three for 59 in his 9.5 overs as the visitors need 288 runs to claim a consolation victory.
The Proteas have already taken an unassailable 2-0 lead in the three-match ODI series.
Scores in brief:
South Africa 287 all out in 49.5 overs (De Kock 124, Van der Dussen 52, Krishna 3/59)
India need 288 runs to win the third ODI.
Toss: India won and decided to field first.