A century stand between Shakib Al Hasan and Towhid Hridoy guided Bangladesh to 265-8 after a top-order collapse against India in the last Super Four clash of the Asia Cup on Friday.
The match is a tune-up for India, who are already guaranteed to face Sri Lanka in Sunday's final in Colombo, ahead of the ODI World Cup at home next month.
India elected to bowl first and Shardul Thakur and fellow quick Mohammed Shami struck early.
Bangladesh, who have won just one group match in this tournament, quickly slipped to 59-4.
The left-handed Shakib (80) and Towhid Hridoy (54) steadied the innings with a fifth-wicket stand of 101.
Hridoy hit two successive sixes off debutant Tilak Varma as he looked to accelerate and Shakib joined the charge too.
Thakur returned for a second spell and got Shakib bowled after a drinks break and Ravindra Jadeja soon got his 200th ODI wicket.
Hridoy kept up the charge and reached his fifty with a boundary but soon fell to Shami.
Nasum Ahmed, a left-arm spinner who is known to slog with the bat, also contributed with 44 while Mahedi Hasan added 29 as Bangladesh posted a competitive total.