Axar Patel claimed a career-best 6-38 as he and spin colleague Ravichandran Ashwin skittled out England for 112 on the opening day to put India in charge of the day-night third Test in Ahmedabad on Wednesday.
The hosts were five for no loss their reply at the world's largest cricket stadium which was named after India Prime Minister Narendra Modi on Wednesday.
Rohit Sharma was batting on five at the dinner break and Shubman Gill was yet to open his account with India hoping to consolidate their position in the final session.
Earlier, Joe Root's decision to bat backfired as the tourists wilted inside two seasons despite Zak Crawley's fluent 53.
England made four changes to their playing XI but their rejigged top order could not provide the strong start that Root had demanded after winning the toss.
Playing his 100th Test, seamer Ishant Sharma had Dom Sibley caught in the slip in the third over before the Indian spinners wreaked havoc.
Home captain Virat Kohli introduced spin as early as in the seventh over and Patel trapped Jonny Bairstow lbw for nought with his first delivery.
Crawley, however, appeared to bat on a different pitch, dealing mostly in boundaries and bringing up his fifty off 68 balls.
Before his partnership with Root could flourish, Ashwin intervened.
The wily off-spinner dismissed the England captain lbw for 17. Root reviewed the decision but could not prolong his innings.
Patel ended Crawley's knock in similar fashion to trigger a batting collapse and England lost their last eight wickets for 38 runs.
It was a sense of deja vu for England who were dismissed for 58 in their previous pink-ball Test in New Zealand three years ago.