India's Ravichandran Ashwin hit 70 to deny England a bigger lead, as the hosts batted on before folding at the stroke of tea.
England, who made 537 in their first innings, picked up the wickets of India captain Virat Kohli and Ajinkya Rahane in the first session, and appeared set to take a sizeable lead.
All-rounder Ashwin and wicketkeeper Wriddhiman Saha (35) added 64 for the seventh wicket to reduce the deficit.
Earlier resuming on 319-4, Kohli and Rahane appeared untroubled, picking up singles and doubles with the occasional boundaries.
Rahane missed a straight delivery while trying to play across the line to left-arm spinner Zafar Ansari and was bowled for 13, ending their promising 30-run partnership just as it looked set to flourish.
Kohli, India's best batsman, looked in fine touch and struck some crisp boundaries in 40 before the right-hander was hit wicket, his back leg hitting the stumps as he tried to pull a Rashid delivery.
Kohli stood at the wicket in disbelief before trudging off with his team at 361 for six.
Saha survived some nervous moments at the start of his innings and saw an edge off Ben Stokes go between wicketkeeper Jonny Bairstow and Alastair Cook at slip.
He was also hit on the grill of his helmet by fast bowler Chris Woakes before getting an edge to Bairstow off Moeen Ali.
Rashid then took the wickets of local boy Ravindra Jadeja and Umesh Yadav to take his innings tally to four.
England captain Cook also dropped number 11 batsman Mohammed Shami at slip off Stuart Broad with India adding another 29 runs for their final wicket.
Ashwin, who hit seven boundaries, was the last man out when he holed out at deep midwicket, giving off-spinner Moeen his second wicket of the innings.
Original source: Rashid leads attack as England take lead against India