Taijul Islam claimed three wickets as Bangladesh made India struggle on the second day of the second Test in Dhaka on Friday.
Resuming at 19-0, the visitors reached 86-3 at lunch, still trailing Bangladesh by 141 runs.
Former skipper Virat Kohli was batting on 18 with Rishabh Pant 12 not out at the break.
Taijul had KL Rahul (10) and Shubman Gill (20) out leg-before in successive overs before he dismissed Cheteshwar Pujara for 24.
Rahul was initially declared not out but the decision was overturned on review.
Gill walked off after he was struck plumb in front by Taijul in the next over.
The left-arm spinner then broke the fledging 34-run partnership between Pujara and Kohli just as the duo looked set.
Pujara, who completed 7,000 Test runs during the innings, was caught by Mominul Haque at forward short leg.
Liton Das dropped Kohli at 16 off Taijul before Bangladesh missed a run out chance in the same over.
On day one Umesh Yadav and Ravichandran Ashwin claimed four wickets apiece as India bowled out Bangladesh for 227 runs in the first innings.
India won the first Test of the two-match series by 188 runs in Chattogram.