Indian captain Rahul Dravid declared his team's second innings at 100-6 to leave Bangladesh a target of 250 in a minimum of 43 overs on the final afternoon at the Ruhul Amin stadium.
Bangladesh responded to the stiff challenge in front of 15,000 home fans to make 104-2 in 28 overs before the two captains agreed to call off the match with 16 overs yet to be bowled.
Opener Javed Omar remained unbeaten on 52 as the players walked off from a game where 15 hours of the stipulated 30 were lost due to bad weather.
Just 20 overs were played on the second day and the entire third day was washed out.
Play began late even on the fifth and final day at 2:00 pm (0800 GMT) after four hours were lost due to damp ground conditions caused by heavy overnight rain in this port city.
India, looking for quick runs after resuming at their overnight score of 44-2, lost four wickets in 10 overs but still managed to add 56 runs.
Left-arm spinner Mohammad Rafique picked three of those wickets, removing Sachin Tendulkar (31), Sourav Ganguly (13) and Ramesh Powar (six).
Mashrafe Mortaza, who claimed four wickets and hit 79 in the first innings, dismissed Dinesh Karthick for his only success in India's second knock.
The 23-year-old seamer was later named man of the match.
India, who had bowled out Bangladesh for 238 in their first innings, were looking for quick wickets following the declaration, but the continued absence of spin spearhead Anil Kumble due to fever cost them dearly.
Left-arm seamer Rudra Pratap Singh provided an early break when debutant Shahriar Nafees was caught behind by wicket-keeper Mahendra Dhoni in the fourth over.
Omar and captain Habibur Bashar fought back for the hosts with a 70-run stand for the second wicket.
Bashar made 37 with the help of six boundaries when he lofted off-spinner Ramesh Powar to long-on where Rudra Pratap Singh was perfectly stationed to take the skier.
Rajin Saleh kept Omar company till the end to ensure there were no further setbacks.
The second and final Test starts in Dhaka on Friday.