As the Rajkot pitch began to deteriorate, Yorkshire’s Adil Rashid (4-114) found most assistance - but Ravi Ashwin (70) narrowed the deficit, featuring in a last-wicket stand of 29 with Mohammad Shami.
Ashwin was still a run short of his 111-ball half-century, as England’s tenacious bowlers stuck impressively to their arduous task, when Alastair Cook put down a straightforward chance at slip off Stuart Broad which would have seen Shami depart for a single and secure a lead of 77.
There had been a significant piece of fortune previously for England when Virat Kohli contrived to step on the base of leg-stump with his left leg and dislodge a bail as he went to pull Rashid.
That hit-wicket dismissal was a second success for the tourists in under three overs inside the first hour, after Ajinkya Rahane’s very uncharacteristic misjudgment of length against Zafar Ansari.
The slow left-armer struck with his fifth ball of a new spell when Rahane was bowled off his pad - back and attacking when he ought perhaps to have been forward, and certainly defending.
Seventh-wicket pair Ashwin and Wriddhiman Saha then shared a stand of 64 which was not broken until early afternoon.
Saha survived a half-chance on nine, when a diving Jonny Bairstow was unable to quite get his right glove to an edge which flew fast and low for four off Ben Stokes.
India’s wicketkeeper went on to bring up the 400 by hitting Rashid for six over long-off but shortly after lunch edged behind again - an attempted cut off Moeen Ali - and this time was safely held by Bairstow.
Indications of variable bounce and exaggerated spin were slowly becoming regular rather than occasional, on a pitch which had strongly favoured the batsmen throughout the first three days.
One such instance spelled the end for Ravindra Jadeja, caught at short-leg.
He was unable to deal with a delivery from Rashid which leapt at him, and the leg-spinner then doubled up in his next over when Umesh Yadav’s attempt to dominate on the slog-sweep backfired with a simple catch into the off-side ring from a leading edge.
Cook then missed his chance, and in Broad’s next over Ashwin ramped a boundary just out of the clutches of the leaping Bairstow.
It therefore eventually fell to the returning Moeen to have Ashwin last out, caught on the deep midwicket boundary.