Opener Yashasvi Jaiswal hit his first Test double century to guide India to 396 all out but England openers came out attacking on day two of the second Test on Saturday.
The tourists reached 32-0 at lunch with Zak Crawley, on 15, and the left-handed Ben Duckett, on 17, hitting six boundaries between them in Visakhapatnam.
England, who lead the five-match series 1-0, trail the hosts by 364 runs.
Left-hander Jaiswal resumed on 179 and smashed debutant spinner Shoaib Bashir for a six and four to get past 200 in the opening session.
The 22-year-old removed his helmet, jumped with joy and blew kisses to a weekend crowd that rose for a standing ovation to applaud his marathon knock.
Veteran pace bowler James Anderson finally got Jaiswal out for his third wicket.
Bashir wrapped up the innings and he and fellow spinner Rehan Ahmed also took three wickets each.
Jaiswal's overnight partner Ravichandran Ashwin departed for 20 in the first hour of play when he edged a moving delivery from Anderson to the wicketkeeper.
He charged on to become the third-youngest Indian to make a 200 in Tests but lost his patience against the 41-year-old Anderson, who got the batsman to slice the ball and get caught.
Jaiswal built key partnerships along the way including a 70-run stand with debutant Rajat Patidar (32) on day one when Bashir struck twice, including skipper Rohit Sharma (14) for his first Test wicket.
England, led by Ben Stokes, won the opener by 28 runs to hand India just their fourth loss in 47 Tests at home since 2013.