Off-spinner Simon Harmer denied India a big first-innings lead and dragged South Africa back into the contest on day two of the low-scoring opening test between the sides on Saturday.
South Africa appeared to have conceded significant ground after being bundled out for 159 in their first innings at Eden Gardens on Friday.
Harmer (4-30) led their fightback with the ball and helped South Africa bowl out India for 189 to reel them in.
The Proteas were 18 for one in their second innings with Aiden Markram on three having lost opening partner Ryan Rickelton (11) at the stroke of tea.
India found themselves one batter short in the first innings after skipper Shubman Gill retired hurt with a neck spasm after making four.
Resuming on their overnight score of 37 for one, India had looked determined to see through the tricky opening hour.
Washington Sundar (29) hit Keshav Maharaj for a six but could not carry on and was caught at slip off Harmer's bowling.
Gill opened his account with a four but immediately walked off the field massaging his neck.
Returning from a foot injury that kept him out of the home series against West Indies, Rishabh Pant (27) had the South Africa players on their toes right after he walked in.
Pant was surprised by a leaping Maharaj delivery, which he guided towards slip where Markram was too startled to react in time and take the catch.
Pant rubbed salt into Maharaj's wound by stepping out to the next ball and hitting it for a six over mid-off.
The spinner found some solace when he had KL Rahul (39) caught at slip but Pant scored freely.
Corbin Bosch brought relief to the South Africa camp when he dismissed Pant caught behind with a bouncer.
Ravindra Jadeja contributed 27 but lack of partnerships hurt India, who folded half an hour before the tea break with Harmer wrecking their middle order.

Croatia secure World Cup spot with win over Faroe Islands
Netherlands move to within one point of World Cup berth
Auger-Aliassime into ATP Finals last four, Sinner unbeaten
Nicolai Højgaard surges to summit with blistering second round in Dubai
