India subjected South Africa to the ignominy of a follow-on and were two wickets away from inflicting a series whitewash on the visitors after dominating day three of the third and final Test in Ranchi on Monday.
Replying to India's 497-9 declared, South Africa were all out for 162, conceding a massive first-innings lead of 335 runs.
Asked to follow on, they were equally poor second time round as they slumped to 132-8 at stumps having barely avoided defeat inside three days.
Theunis de Bruyn was unbeaten on 30 after coming in as concussion substitute for Dean Elgar who went for tests after being hit flush on the helmet by an Umesh Yadav delivery.
Anrich Nortje was on five with India closing on a victory which would consolidate their place on top of the World Test Championship table.
Earlier, Zubayr Hamza (62) scored his maiden Test fifty in an otherwise insipid batting performance by South Africa who resumed day three on a precarious 9-2.
It got worse for the Proteas as they lost skipper Faf du Plessis in the first over to a beautiful delivery by Yadav.
Hamza added 91 runs with Temba Bavuma (32) but apart from them and George Linde (37), no other South African batsman reached double figures.
In their second innings, South Africa were jolted early by Yadav who bowled Quinton de Kock for five before Mohammed Shami ran through the top order with a three-wicket burst.
The right-arm quick bowler bowled Hamza for a duck, trapped Du Plessis lbw and had Bavuma caught behind to tighten the noose around the tourists.
Elgar made 16 before sustaining a sickening blow to his helmet and was sent to hospital for concussion tests.
For the visitors, only Linde, who made 27 before being run out, will emerge from his Test debut with head held high, having resisted with the bat in both innings as well as taking four wickets.
India wicketkeeper Wridddhiman Saha sustained a finger injury in the final session and was replaced by Rishabh Pant behind the stumps.