Rishabh Pant hit a defiant 101 to put India in control of the fourth and final Test against England on Friday.
India reached 294 for seven at the end of the second day in response to England's 205. The South Asians lead by 89 runs with Washington Sundar batting on 60, and Axar Patel on 11 at the end in Ahmedabad.India, leading 2-1 in the series, had struggled to make runs and lost crucial wickets, including skipper Virat Kohli who failed to score.
But Pant put on 113 for the seventh wicket with Sundar to hit back after the England bowlers reduced India to 146 for six at one stage.
James Anderson claimed three wickets while fellow pace bowler Ben Stokes and spinner Jack Leach took two each.
Left-handed wicketkeeper batsman Pant made light of the tough conditions and reached his third Test hundred with a six off Joe Root's spin.
Pant, who smacked Anderson for his 13th boundary with an audacious reverse hit over slips, finally fell to the veteran quick and walked off to a standing ovation.
Stokes earlier took two key wickets, including Kohli, and catching Ajinkya Rahane in the slips added to his key role after hitting 55 on day one.He combined with Anderson, who bowled 11 maidens in 20 overs to make India work for their runs after they resumed the day on 24-1.
India need to avoid defeat to book a meeting with New Zealand in the World Test Championship final at Lord's in June.