Cheteshwar Pujara and Virat Kohli scored centuries as India recovered from a shaky start to reach 317-4 on the first day of the second Test, which was briefly interrupted by a dog.
Having been reduced to 22-2 inside five overs, India rallied as Pujara (119) chalked up his third Test hundred in as many matches, and Kohli (151) followed soon after.
The pair's 226-run partnership put the hosts in the driving seat in Visakhapatnam, though Jimmy Anderson's display on his return from a shoulder injury offered some cause for English optimism.
He took three wickets, including the scalp of Pujara, on what was otherwise largely a tough day in the field for Alastair Cook's side.
A different story looked set to unfold when Stuart Broad induced an edge from KL Rahul in only the second over, the opener taken by Ben Stokes at third slip without scoring.
Murali Vijay was playing some fluid shots and clocked up four fours in his brisk 20 before a fierce delivery from Anderson looped off his glove and into Stokes' hands.
From there, though, the day belonged to India, with Pujara and Kohli underlining the importance of having won the toss.
Pujara's confidence was apparent when he expertly hoisted Zafar Ansari over the boundary for a six in the 49th over.
An unlikely intervention halted India's progress as a dog ran onto the field in the 57th over, forcing an early tea, but Pujara managed to pick up where he left off and it was another maximum that took him to his 10th Test century.
Having raced to 99, a long hop from Adil Rashid was blasted over deep midwicket to rapturous applause, with the noise levels rising again when Kohli made his century three overs later.
Cook tried to vary his bowling attack and field placings, but England were sloppy at times, Ansari conceding four overthrows as the total kept rising.
There was further frustration in store when Kohli narrowly survived a review for lbw, while Broad appeared to pull up injured, though he did later resume bowling,
Anderson ensured his side at least finished on a high, getting swing off the new ball to deceive Ajinkya Rahane (23) as Jonny Bairstow took the catch in the penultimate over.