Batsman Murali Vijay anchored India's second innings with a painstaking fifty after England threatened to take charge of the second cricket Test at Lord's.
India lost three wickets for five runs in 19 balls to be 123 for 4, with a lead of just 99 runs.
But by the close of the third day they were 169 for 4, 145 runs ahead.
Opening batsman Vijay, in for nearly five hours, was 59 not out and India captain Mahendra Singh Dhoni unbeaten on 12.
England's Liam Plunkett had a day to remember, scoring a Test-best 55 not out to help his side into a 24-run first-innings lead and then taking two wickets in two balls.
The five-test series is tied 0-0 after the first test at Trent Bridge was drawn.