Bangladesh left-arm spinner Taijul Islam struck three times in Friday's opening session to reduce India to 86-3 on the second day of the final test in Mirpur.
India, replying to the home side's modest first-innings total of 227, resumed on 19 for no loss but Taijul wrecked their top order to keep Bangladesh in with a chance of levelling the two-test series.
Virat Kohli was batting on 18 at the lunch break with Rishabh Pant on 12 at the other end.
Taijul removed India's stand-in skipper KL Rahul lbw for 10 and, in his next over, sent back the other opener, Shubman Gill, for 20 by the same manner.
Cheteshwar Pujara made 24 before Mominul Haque plucked a low catch at short leg to get rid of him.
India won the first test by 188 runs in Chittagong on Sunday.