Bangladesh, replying to India's first innings total of 387-8 declared, slipped to 49-3 by lunch as left-arm seamers Rudra Pratap Singh and Zaheer Khan ripped through the top order.
Singh dismissed Javed Omar and captain Habibur Bashar in three balls and Zaheer removed Shahriar Nafees (32) as the tourists infused some life into the rain-curtailed match.
Rajin Saleh was unbeaten on five and Mohammad Ashraful was on two when bad light drove the players back to the pavilion five minutes before the scheduled break.
Just 97 overs were bowled on the first three days as incessant rain allowed only 20 overs on the second day and washed out the entire third day's play at the Ruhul Amin Stadium.
Sachin Tendulkar, who extended his world record tally to 36 Test centuries on Saturday, held two good catches at first slip to leave Bangladesh on the back foot.
India, who resumed at Saturday's score of 384-6, lost two wickets for three runs before captain Rahul Dravid declared 11 minutes after the start.
India suffered a blow when spin spearhead Anil Kumble, the best hope for the tourists to force an unlikely result, failed to take the field due to fever.
Zaheer, who replaced Kumble at the batting crease, last three balls when he was caught behind off Shahadat Hossain.
Seamer Mashrafe Mortaza claimed his fourth wicket in the innings by removing Mahendra Singh Dhoni for 36, at which stage Dravid declared.
Mortaza finished with 4-97 and new ball partner Hossain took 3-76.
With a draw the most likely outcome, the series hangs on the second and final Test to be played in Dhaka from Friday.
Brief Scores (at lunch, D-4)
India Ist innings 387 for 8 decl Vs Bangladesh 49 for 3 (Shahriar Nafees 32; R P Singh 2 for 15, Zaheer 1 for 17)