West Indies, for whom Shai Hope made 109, were well-placed at 205 for two in the 41st over before slumping to 261 for nine in 50 overs, with pace-bowling captain Mortaza taking three for 49.
Tamim then made 80 and shared an opening stand of 144 with Soumya Sarkar (73). Shakib Al Hasan followed up with an unbeaten 61 off as many balls, with Bangladesh, who beat the West Indies in two one-day international series in 2018, winning with five overs to spare.
Tamim, however, had only made one when he was dropped at cover by Roston Chase. He went on to face 116 balls, including seven fours.
Earlier, Hope carried on from his excellent form against Ireland in the triangular series opener where he made a magnificent 170 in a commanding victory. The opening batsman was quickly into his stride, flicking the first ball of the match from Mohammad Saifuddin and hitting him through the covers off the third ball. But despite adding 115 runs for the third wicket, Hope and Chase (51) were restricted by Shakib and Mehidy Hasan Miraz, who between them had combined figures of two for 71 from 20 overs.
Hope was eventually caught at cover off Mortaza.
The series continues on Thursday when Ireland, who have not qualified for the upcoming World Cup in England, play Bangladesh.
West Indies 261-9, 50 overs (S Hope 109, R Chase 51; Mashrafe Mortaza 3-49)
Bangladesh 264-2, 45 overs (Tamim Iqbal 80, Soumya Sarkar 73, Shakib Al Hasan 61 no) AFP