A fighting half-century from Bangladesh's Mahmudullah kept India at bay despite two wickets falling before lunch on the final day of the one-off Test in Hyderabad on Monday.
Facing the probability of having to bat the entire day for a draw after being set 459 for victory, Bangladesh were 202 for five at lunch. after resuming on 103 for three at the start of play.
Mahmudullah, who began the day on nine, was on 58 having shrugged off a run of low scores to record his 13th Test fifty. Sabbir Rahman was not out 18.
India's Ravichandran Ashwin, who in his 45th Test had become the fastest bowler to claim 250 Test wickets on Sunday, has taken three of the five wickets to fall while Ravindra Jadeja has the other two.
Jadeja struck early to remove Shakib Al Hasan, who was undone by turn and bounce as he popped up a catch off bat and pad to Cheteshwar Pujara lurking at short-leg to be out of for 22.
First-innings centurion Mushfiqur Rahim then joined Mahmudullah in a fifth-wicket partnership of 56 runs before Ashwin ended the stand by notching up his 253rd Test victim.
Skipper Rahim went down the track to attack, but Ashwin saw him coming and shortened his length to draw the batsman into a mistimed lofted drive which found Jadeja fielding at mid-on.