India started the final day on 35/3 with 252 more runs to win the Test and equalize the series.
However, it was not to be as South African bowling attack produced a clinical performance to backup their batting. Debutant Lungi Ngidi was the star of Proteas bowling attack, picking up a six wicket haul (6/39) on his Test debut.
Things started to fall apart soon, as Cheteshwar Pujara got himself run out for the second time in this Test, this time going for a close third run. He scored 19 runs. Parthiv followed suit for 19, leaving India 65/5. Hardik Pandya edged a wide short one from Ngidi for 6 and then Ngidid removed Ashwin for 3 runs. India was staring a big defeat at 87/7.
Rohit Sharma (47) and Mohammed Shami (28) formed a partnership to add 54 runs for the 8th wicket, before Rabada had Rohit caught by De Villiers and then Ngidi removed Shami to complete a well deserved five wicket haul and then removed Bumrah to take his sixth wicket to win the Test for his team.
This failure of Indian team to win a Test in the series so far should be solely blamed on batting not able to repeat the feats of bowling. Indian bowlers bowled well enough to get 20 wickets in both matches, but the Indian batting failed to capitalize on it in both Tests.
The third Test will be played at New Wanderers Stadium, Johannesburg on 24th January, 2018.
SOUTH AFRICA 335 & 258
INDIA 307 & 151 (ROHIT Sharma 47; L NGIDI 6/39)
SOUTH AFRICA WON THE SECOND TEST BY RUNS AND LEAD THE THREE MATCH SERIES 2-0