James Anderson wrecked India's top order with a three-wicket burst before Craig Overton and Sam Curran mowed down the tail to bundle out the tourists inside two sessions.
Haseeb Hameed was batting on 15 at the break and Rory Burns was on three, denying India an early breakthrough.
Earlier, after India captain Virat Kohli had won the toss and elected to bat, Anderson gave England a dream start, dismissing in-form opener KL Rahul in the first over.
Rahul fell caught behind for a duck, attempting a drive even before getting his eye in.
Next man in Cheteshwar Pujara scored one before edging Anderson behind, the batsman looking in two minds about which way the ball would swing.
Anderson followed with the prize wicket of Kohli, who fell in a similar manner, and let out a roar celebrating the dismissal.
The 39-year-old seamer produced a swing masterclass in his opening spell which read 8-5-6-3.
His new-ball colleague Ollie Robinson struck either side of the lunch break, dismissing Ajinkya Rahane for 18 and removing the dangerous Rishabh Pant with Jos Buttler taking his fifth catch of a busy morning.
India went on to lose four wickets in a span of six balls without adding a run in a spectacular batting collapse.
Opener Rohit Sharma survived 105 balls for his 19 but threw away his wicket after all the hard work.
India, who lead the five-match series 1-0, fielded an unchanged squad, while England made two changes.
Dawid Malan was picked in place of an out-of-form Dom Sibley, while Overton replaced injured seamer Mark Wood.