England took four wickets in the final session of day three to reduce India to 297-8 in the fourth Test in Nagpur.
India looked to be coasting to a first-innings lead after reaching 288-4, but England struck four times in the final hour of the day to regain the momentum heading into day four with India still 33 runs adrift.
Virat Kholi and MS Dhoni frustrated England's bowlers during an uneventful morning session as they added just 59 runs to take their total to 146-4.
It was a similar story during the afternoon session as India's two batsmen edged closer to their centuries in extending their partnership past 150 and taking India to 227-4.
Kohli brought up his third Test ton soon after tea with a boundary but England finally made their first breakthrough of the day when Graeme Swann trapped Kohli lbw for 103 with the first ball after a drinks break.
That brought to an end a partnership of 198 but the next could only produce 19 runs after James Anderson dismissed Ravindra Jadeja for 12.
Dhoni spent several overs waiting on 99, but when the opportunity came to move into three figures at the start of the penultimate over, he attempted a risky single and was marginally run out by England captain Alastair Cook.
Those three wickets had given England some respectability after a difficult day but they struck a further blow in the final over as Swann bowled Piyush Chawla for one to leave India 33 runs behind on 297-8.