Bangladesh fought their way into what earlier appeared a lost cause on Saturday, knocking over four Indian wickets to leave the visitors teetering after Liton Das compiled a gritty half-century on the third day of the second Test in Dhaka.
The Bangladesh bowlers were given 145 runs to defend after Liton's steely 73 and a wagging tail steered the hosts to 231 all out.
Despite the subpar score, spinners Mehidy Hasan and Shakib Al Hasan rose to the challenge, reducing India to 45-4 at stumps with 100 still left to chase, leaving the match unexpectedly hanging in the balance.
Mehidy claimed three wickets after Shakib's initial breakthrough, removing Cheteshwar Pujara (six), Shubman Gill (seven) and Virat Kohli (one). Shakib started the slide with the wicket of captain KL Rahul for two.
Axar Patel survived the day to stay unbeaten on 26 alongside nightwatchman Jaydev Unadkat (three), with first-innings heroes Rishabh Pant and Shreyas Iyer yet to come in.
Liton said after the close of play that Bangladesh could keep India under pressure and eke out a win with early wickets on Sunday.
"It is possible to win if we can take one or two more wickets in the early morning," he said.
"Rishabh and Iyer are yet to come, they are of course good players, but as I said if we can take one or two more wickets they will remain under pressure."
For India, building a partnership remains vital.
"I feel we should not overthink that four wickets have gone. If one of our batsmen get set, there won't be much pressure on us," fast bowler Mohammed Siraj said.
Regular wickets
Axar had earlier downed three Bangladesh batters and all of India's bowlers were among the wickets.
But Liton rode his luck in an innings where he was dropped twice by Kohli -- first off Axar and then Ravichandran Ashwin -- to score what could be 73 vital runs.
There was little support for him on the other end after opener Zakir Hasan (51) fell soon after lunch until wicketkeeper Nurul Hasan joined him at the crease and the pair compiled an aggressive 46-run stand.
That stand was broken by Axar when he drew Nurul out of his crease to set up an easy stumping for Pant.
Liton then added another brisk 60 runs alongside Taskin Ahmed (31 not out) before he was bowled by a Siraj delivery that nipped back in and found the gap between bat and pad.
Even with those small pockets of resistance, India looked to be in complete control of the match, picking up regular wickets with all their bowlers getting a part of the spoils.
Ashwin had Najmul Hossain trapped leg-before for five in the second over of the day before Siraj removed Bangladesh's first-innings top-scorer Mominul Haque for the same score.
Unadkat then got skipper Shakib (13) to spoon a length delivery to Gill at cover in his first over of the day.
With the hosts struggling, Axar added to their misery on the stroke of lunch, trapping the experienced Mushfiqur Rahim lbw for nine.
He added two more to his tally after the break, getting Mehidy lbw for nought before dismissing Nurul for 31.
Siraj, Ashwin, and a run-out accounted for the final three wickets.
The Bangladesh bowlers had given their side a glimmer of hope in Friday's final session, restricting India's lead to 87 runs just when the visitors looked like they might amass a mammoth score.
Pant and Iyer were running rampant, with both crossing fifty at rapid pace, ending at 93 and 87 respectively, but Bangladesh knocked over the last six Indian wickets for 61 runs to restrict India to 314.
India won the first Test of the two-match series by 188 runs in Chittagong.