Jofra Archer removed both Indian openers with the new ball as England set about making their big first-innings score count in the first Test.
The tourists batted on for 41 minutes on the third morning in Chennai, eking out another 23 runs for their final two wickets to finish 578 all out.
That meant Rohit Sharma and Shubman Gill had spent just over 190 overs in the field waiting for their chance and the pair found themselves back in the pavilion before lunch.
The hosts scored quickly, with nine boundaries in their 59 for two, but England will feel Archer's double strike more than compensated for the steady flow of runs.
England's tail succeeded in keeping India out on their feet but did not advance the game much before the arrival of the new ball helped Jasprit Bumrah end Dom Bess's resistance for a very handy 34.
He had put on 42 with his old Somerset team-mate Jack Leach, with the latter reaching 14 not out after Rishabh Pant missed a stumping chance off Ravichandran Ashwin. The spinner ended things by bowling James Anderson on the sweep, a third reward for nearly 56 overs of work.
Having watched England's long and productive innings, India needed nothing more than a sizeable opening stand of their own. Instead, Rohit lingered for just nine deliveries before poking tentatively at Archer as he worked up some decent pace outside off stump.
Anderson turned in an unusually harmless initial burst, straying down leg-side too often and allowing Gill the chance to show off his classy timing on the leg-side. He made way for Ben Stokes after four overs but made a vital contribution from mid-on when Archer drew a mistake from the free-flowing Gill.
The 21-year-old had already needed treatment for a blow to the glove from the paceman and, when he punched a full delivery aerially down the ground, 38-year-old Anderson dived to his left to claim a fine catch.
A rapid bouncer greeted captain Virat Kohli, but he and Cheteshwar Pujara (20no) played for the break.