Cape Town - Mohammad Shami broke open the series-deciding Test with searing spell on the second afternoon here at Newlands.
The Indian seamer struck two crucial blows within three balls to dismiss both Temba Bavuma and Kyle Verreynne. Jasprit Bumrah then drove home the advantage with a further wicket on the final ball before tea when he castled Marco Jansen to leave South Africa reeling on 176/7 - still 47 runs in arrears.
Bavuma had earlier been dropped by Cheteshwar Pujara at second slip - the ball had actually ricocheted against the helmet behind the wicket-keeper to gift South Africa five runs - but he was unable to take advantage of the let off.
Shamsi persisted with a nagging line and length outside Bavuma's off stump and was rewarded for his efforts when the Proteas ODI skipper followed one into the gloves of Rishabh Pant.
Bavuma departed for 28 after playing a few delightful cover drives but his team required a much more substantial contribution from one ot their most senior batters.
India were rejoicing a few moments later again when Verreynne followed in similar fashion for a two-ball duck.
The session had appeared to be moving in South Africa's direction when Keegan Petersen and Rassie van der Dussen had enjoyed a 67-run partnership for the fourth wicket.
Virat Kohli’s 💯th catch in Test cricket is a special one 🔥— SuperSport 🏆 (@SuperSportTV) January 12, 2022
Shami’s double strike has the Proteas on 160-6, still trailing by 64 runs.
📺 Stream #SAvIND live: https://t.co/0BMWdeEYT3 pic.twitter.com/PTAHyejy0G
Van der Dussen had forrced India to waste two reviews in the process, but there was no saving grace when he edged Umesh Yadav behind for a 54-ball 21.
South Africa's position would have been a lot worse were it not for Petersen, who is fighting a lone battle against the Indian seamers whilst bringing up his second half-century of the series. He remains unbeaten on 70 and is South Africa's last hope of edging closer to India's 223 all out.