England were left with a mountain to climb after India made 455 in their first innings before returning to blow away the tourists' top order on a spin-dominated second day of the second test on Friday.
England reached 103 for five, trailing India by 352 runs, at stumps with all-rounder Ben Stokes and wicketkeeper Jonny Bairstow unbeaten at the crease.
The touring side were rattled in the third over when paceman Mohammed Shami breached captain Alastair Cook's defence with an incoming delivery that split the left-hander's off-stump in two.
Joe Root and young opener Haseeb Hameed survived a hostile spell of bowling from the Indians to add 47 for the second wicket before the latter was run out on 13 by some smart work from wicketkeeper Wriddhiman Saha.
England's batting mainstay Root, who hit a century in the previous test in Rajkot, made 53 before he fell to off-spinner Ravichandran Ashwin, who also picked up the wicket of Ben Duckett.
Debutant off-spinner Jayant Yadav picked up his maiden wicket with a review after Moeen Ali advanced and then padded the ball away.
England were 80-5 at that stage, but Bairstow, unbeaten on 12 and Stokes ensured there was no further damage. Stokes was not out on 12 and survived when a delivery from Yadav kissed, but did not dislodge, his bail.
Earlier, Ashwin scored his second half-century of the series to guide India to a strong first-innings score.
Ashwin scored 58 and added 64 for the eighth wicket with Yadav (35) after England off-spinner Moeen had claimed three quick wickets to peg back the hosts.
Resuming the second day on 317-4 in the first ever test match in the port city of Visakhapatnam, captain Virat Kohli and Ashwin added 35 in a fifth-wicket stand.
Stokes failed to hold on to the straightforward chance from Ashwin but made amends with the very next ball, catching Kohli when the India captain attempted a cover drive.
Kohli, who was unbeaten on 151 overnight, hit 18 boundaries in his knock of 167.
Moeen dismissed Saha and Ravindra Jadeja in the same over to reduce India to 363-7.
Saha wasted a review on a plumb lbw decision while Jadeja did not appeal his leg-before dismissal to a delivery which, replays confirmed, was missing the stumps.
Ashwin, who scored 70 and 32 in the first test at Rajkot, and Yadav then added some crucial runs to India's total.