Virat Kohli hit a belligerent fifty to consolidate India's position after Ravichandran Ashwin picked up another five-wicket haul to help bundle out England for 255 and give the hosts a first-innings lead of 200 in the second test on Saturday.
After opting not to enforce the follow on, India lost three quick wickets but captain Kohli and Ajinkya Rahane combined in an unbroken stand of 58 to take the team to 98-3 at the end of the third day, an overall lead of 298.
The 28-year-old Kohli, who hit 167 in the first innings, hit six boundaries in his unbeaten 56 and looked in no trouble on a surface which has tested all other batsmen with the turn and variable bounce on offer.
Stuart Broad dismissed India openers Murali Vijay and Lokesh Rahul cheaply after overturning umpire Rod Tucker's not out decisions on both occasions.
James Anderson, England's most prolific wicket-taker, then got a ball to swing in late to breach first-innings centurion Cheteshwar Pujara's defence, reducing India to 40-3.
Off-spinner Ashwin is the world's top-ranked test bowler at the moment and his 22nd five-wicket haul in only his 41st test earlier helped bring an end to some stout resistance from the tourists.
[caption id="attachment_34722" align="aligncenter" width="640"]
India's Ashwin successfully appeals for the dismissal of England's Stuart Broad REUTERS
Ben Stokes and Bairstow had hit half-centuries and combined in a sixth-wicket stand of 110 to launch England's fightback.
Stokes, who survived a close call on Friday when a delivery from debutant off-spinner Jayant Yadav kissed but did not dislodge his bail, had another slice of luck when wicketkeeper Wriddhiman Saha missed a stumping chance off Ashwin with the batsman on 21.
Batting on 18, Bairstow also saw an edge off Umesh Yadav fly between the first and second slip.
The pair kept the hosts at bay before being separated 10 minutes before lunch when Umesh Yadav finally dismissed Bairstow for 53, the paceman's delivery hitting the batsman's pad before crashing onto the stumps.
Stokes fell for 70 to Ashwin, who had dismissed Joe Root and Ben Duckett on Friday, and the batsman was unable to overturn the umpire's leg before decision on review.
Ashwin, who has won the man of the series awards in India's last four test series, wrapped up England's innings by dismissing Broad and Anderson lbw in consecutive deliveries.
India 455 and 98 for 3
(Kohli 56*, Rahane 22*) lead England 255
(Stokes 70, Bairstow 53, Root 53, Ashwin 5-67) by 298 runs