India were bowled out for 417 in the afternoon session, prompting the umpires to call for early tea.
India, 271-6 overnight, were bowled out for 417 in the afternoon session, prompting the umpires to call for early tea at the Punjab Cricket Association ground.
Ravindra Jadeja top-scored with a dominant 90 while Jayant Yadav's 55 -- his maiden fifty in only his second game -- gave the England bowlers a frustrating two sessions of play.
Indian skipper Virat Kohli (62) and Cheteshwar Pujara (51) also struck crucial knocks on day two to contribute to India's total.
Seam bowler Ben Stokes claimed his third Test five-wicket haul while leg-spinner Adil Rashid took four wickets for the visitors.
Stokes (5-73) worked hard to wipe out the tail but had little support from his fielders, with skipper Alastair Cook and wicketkeeper Jonny Bairstow dropping catches.
Earlier, Jadeja fell 10 runs short of bagging his maiden Test century with his aggressive style of play proving to be his downfall against Rashid.
The left-hander jumped out of his crease against the leg-spinner only to give away a catch to Chris Woakes.
But it had been mostly Woakes at the receiving end of Jadeja's attacking play, the batsman hitting the bowler for four boundaries in an over.
Jadeja, who registered his career-best Test score, surpassing his 68 at Lord's in 2014, and Jayant Yadav put on 80 runs for the eighth wicket.
Jadeja, who started the day on 31, took over the responsibility of piloting the innings after the fall of his overnight partner Ravichandran Ashwin (72).
His wicket ended the 97-run seventh-wicket stand between him and Jadeja as the duo lifted India after the hosts lost four wickets in the final session on Sunday.
India regained the upper hand after Rashid and Stokes led England's fightback on day two, when their quick strikes after tea reduced India to 156-5 and then 204-6.
India's lower-order contributed 261 runs of their first innings total.