Ravindra Jadeja led India's strong lower-order batting display with a career-best 90 before spin partner Ravichandran Ashwin wrecked England's top order to put the hosts firmly in charge of the third Test on Monday.
Jadeja fell agonisingly short of his maiden Test century but shared 75-plus partnerships with Ashwin and Jayant Yadav to give India, who were all out for 417, a handy first-innings lead of 134 runs.
Ashwin struck three times in the final session as England, 1-0 down in the five-match series, slumped to 78-4 at the end of third day, still 56 runs behind.
Joe Root was unbeaten on 36 at the close with night-watchman Gareth Batty on nought and the touring side face an uphill battle to save the match at the Punjab Cricket Association Stadium.
Resuming on 271-6, India needed four overs to erase the 12-run first-innings deficit before their lower order batsmen led them to a substantial lead.
Ben Stokes, who produced a lion-hearted effort with the ball to claim 5-73, earned a breakthrough when he dismissed Ashwin for 72, a composed knock including 11 fours.
The Ashwin-Jadeja stand was worth a match-high 97 runs and Jadeja went on to complete his third Test fifty, celebrating with his trademark swirling of the bat, before accelerating and smacking four boundaries in one Chris Woakes over.
[caption id="attachment_36864" align="aligncenter" width="640"]
India's Ravindra Jadeja swirls his bat after reaching his half-century REUTERS
Aggression proved his downfall, however, as Jadeja stepped out to Adil Rashid and holed out in the deep to depart after an entertaining 170-ball knock that included 10 fours and a six.
Jadeja added 80 runs with Jayant, who made 55, his maiden Test fifty.
England opener Haseeb Hameed was struggling with a finger injury sustained in the first innings and Root opened the innings with Alastair Cook.
Cook survived two reviews but could not capitalise, Ashwin pushing a delivery through the England captain's defence to bowl him for 12.
[caption id="attachment_36882" align="aligncenter" width="640"]
India captain Virat Kohli sends off England's Ben Stokes (not pictured) following his dismissal REUTERS
Cook moved past former Australia captain Steve Waugh to become the 10th highest run-scorer in Test cricket but it was a small consolation on a day when his team struggled on the field.
Moeen Ali chipped Ashwin to Jayant at mid-on, Jonny Bairstow fell caught behind to Jayant and Ashwin dismissed Stokes for five to put India in a dominant position.
A team spokesman said Hameed was expected to bat on Tuesday but could not confirm where in the order.
England 283 & 78/4 in 38 overs
(Root 36*, Bairstow 15, Ashwin 3/19) trail India 417 in 138.2 overs
(Jadeja 90, Stokes 5/73, Rashid 4/118) by 56 runs