“This win is a great feat for us,” captain Rohit Sharma said. “We had to learn from our mistakes in Centurion. We came back very well, especially our bowlers. We knew it was going to be a short game where every run mattered. We applied ourselves with the bat and got nearly a 100-run lead.”
Fast bowler Jasprit Bumrah’s 6-61 helped to negate Aiden Markram’s brilliant 106 to bowl out South Africa out for 176 runs in its second innings by lunch.
That gave India a tricky chase of 79 on a pitch of variable bounce.
Opener Yashasvi Jaiswal scored a quickfire 28 off 23 balls, with six boundaries. He was caught at long leg off Nandre Burger.
Sharma survived two dropped catches, and was unbeaten in the end with 17 not out.
Kagiso Rabada bowled Shubman Gill for 10 and finished the short series with 11 wickets.
Marco Jansen nicked off Virat Kohli for 12 runs when India was four runs from only its fifth win on South African soil.
Earlier, Markram’s counterattacking century helped the Proteas improve from 111-7 to finish on 176, when lunch was called.
After 23 wickets fell on an extraordinary first day, South Africa resumed on 62-3 in its second innings and was immediately in more trouble when David Bedingham was caught behind for 11 off Bumrah.
Kyle Verreynne scored 9 and pulled to mid-on four overs later, again off Bumrah.
Jansen was out caught, a return catch to Bumrah, and then Keshav Maharaj was caught at gully.
Bumrah earned his ninth five-wicket haul in test cricket and South Africa was down to 111-7 in 25.2 overs.
The game looked like ending in the morning session with India chasing an innings victory. But Markram stepped up.
The opener scored 51 off 38 balls with tailender Rabada for the eighth wicket and reached his hundred off 99 balls. Markram hit 17 fours and two sixes in his 103-ball knock.
The next highest score was Dean Elgar’s 12. Apart from Markram, only three batters reached double digits.
Before Markram’s masterclass, the best individual score in the game was Kohli’s 46 in India’s first innings.
Markram was caught off Mohammed Siraj, who picked up his first wicket of the second innings after taking 6-15 in the first innings.
Prasidh Krishna also claimed his maiden test wicket after another poor outing in his debut series.
Bumrah wrapped up South Africa’s innings before lunch when Lungi Ngidi was caught at slip for 8. It was his third six-wicket haul in test cricket.
He finished the series with 12 wickets and was named joint player of the series with Elgar, who scored 201 runs across four innings.
Elgar, who led South Africa at Newlands in the absence of the injured Temba Bavuma, announced his retirement pre-series.
“I would have liked to do more in this test, but I am still proud of my performance in Centurion,” said Elgar, who scored 185 in the first innings there.
“These were some really tough conditions. The first innings killed us with the bat. India bowled very well and used the conditions perfectly. A three-test series would have been fantastic.”
South Africa 1st innings
Aiden Markram 2
Dean Elgar (c) 4
Tony de Zorzi 2
Tristan Stubbs 3
David Bedingham 12
Kyle Verreynne † 15
Marco Jansen 0
Keshav Maharaj 3
Kagiso Rabada 5
Nandre Burger 4
Lungi Ngidi 0*
Total: 55
India 1st innings
Yashasvi Jaiswal 0
Rohit Sharma (c) 39
Shubman Gill 36
Virat Kohli 46
Shreyas Iyer 0
KL Rahul † 8
Ravindra Jadeja 0
Jasprit Bumrah 0
Mohammed Siraj 0
Prasidh Krishna 0
Mukesh Kumar 0*
Total: 153
South Africa 2nd innings
Aiden Markram 106
Dean Elgar (c) 12
Tony de Zorzi 1
Tristan Stubbs 1
David Bedingham 11
Kyle Verreynne † 9
Marco Jansen 11
Keshav Maharaj 3
Kagiso Rabada 2
Nandre Burger 6*
Lungi Ngidi 8
Total: 176
India 2nd innings
Yashasvi Jaiswal 28
Rohit Sharma (c) 16*
Shubman Gill 10
Virat Kohli 12
Shreyas Iyer 4*
Total: 80/3
Listen to ball-by-ball commentary of every Black Caps match this summer live and free on iHeart Radio with The Alternative Commentary Collective.