Dhruv Jurel's 90 and a five-wicket haul by Ravichandran Ashwin put India back in the fourth Test against England on Sunday's day three, as they chase 192 for a series win.
India reached 40-0 at stumps, needing another 152 in Ranchi to win their third straight match and the five-Test series.
Skipper Rohit Sharma was unbeaten on 24, with Yashasvi Jaiswal on 16.
Opener Zak Crawley earlier top-scored with 60, but the rest of the England batting fell for 145 all out -- with Indian spinners Ashwin returning figures of 5-51 and Kuldeep Yadav 4-22.
England spinner Shoaib Bashir took his first Test five-wicket haul to help bowl India out for 307, giving the tourists a lead of 46 going into their second innings.
But the visitors lost regular wickets to end their innings in the final session, leaving it up to the bowlers to level the series and send it to a fifth-Test decider in Dharamsala.
"We've just got to go out tomorrow and hopefully win a Test match", said Bashir.
He said he and fellow spinner Tom Hartley were "really excited" for the day ahead and the chance to beat India.
'Good sign'
"That pitch is deteriorating quite a bit now -- we saw some pop from a good length and some roll. That's a good sign for us", he said.
"We're two tall spinners and we have tall release points. Stokesy (Ben Stokes) and Baz (Brendon McCullum) picked us for a reason," he added.
India's bowlers did their job after wicketkeeper-batsman Jurel turned the tables in the morning session to reduce the hosts' deficit, after they began the day on 219-7.
Ashwin took the new ball on a pitch with cracks and variable bounce and struck in consecutive balls to remove Ben Duckett, caught at short leg for 15, and Ollie Pope, lbw without scoring, as England were reduced 19-2.
Root, who scored an unbeaten 122 in the first innings, put on 46 with Crawley before Ashwin and India reviewed an lbw appeal.
Tracking software indicated the ball pitched just in line and would have hit Root's leg stump.
Crawley raised his fifty but was bowled by Yadav, who turned one sharply with his left-arm wrist spin.
Yadav then removed Stokes just before tea, when the England captain was undone for the second time in the match by a ball that barely bounced ankle high and was bowled off his pad.
Jonny Bairstow fell on the first ball after tea after an attacking 30 and the innings folded soon after. Ben Foakes fell for a 76-ball 17 off Ashwin, who registered his 35th Test five-for.
'Childhood dream'
India were rescued in the morning session by Jurel, who put on a 76-run eighth-wicket stand with overnight partner Yadav.
"When I got in, I just thought of what the team wants from me," said Jurel, who started the day on 30. "The longer I stay here and make runs, the better for me."
Veteran fast bowler James Anderson broke the stand when Yadav, on 28, played on to give the veteran seamer his 698th Test wicket.
The 41-year-old is now two victims away from becoming just the third bowler to take 700 wickets in Tests, after Sri Lanka's Muttiah Muralitharan (800) and the late Australian great Shane Warne (708).
Jurel, who made his debut in the third Test in Rajkot, hit six fours and four sixes in his 149-ball stay and picked up his maiden Test half-century.
"I don't regret a bit on missing the century," he said. "It's my debut Test series, I'm just desperate to hold this trophy. It was a childhood dream to play for India in Tests."
Bashir, 20, who missed England's win in the first Test due to a visa issue, trapped debutant Akash Deep lbw for his fifth wicket and kissed the ground in celebration.
Agence France-Presse