Opener Imrul Kayes scored a career-best 144 off 140 balls as Bangladesh beat Zimbabwe by 28 runs in the first of their three-match ODI series on Sunday.
Kayes' third century was complemented by Mohammad Saiffudin's first 50 as they shared a national record of 127 for the seventh wicket after a middle-order collapse to guide Bangladesh to 271-8.
In reply, Zimbabwe were restricted to 243-9.
Fast bowler Tendai Chatara gave the visitors a perfect start, leaving Bangladesh 17-2 after captain Mashrafe Mortaza opted to bat first.
Kayes helped Bangladesh to recover, sharing 47 with Mushfiqur Rahim (15).
Kayes and Mohammad Mithun (37) had a 71-run partnership for the fourth wicket before right-arm pacer Kyle Jarvis left Bangladesh struggling on 139-6, taking three wickets for just two runs.
Kayes, who hit six sixes and 13 fours before being dismissed in the penultimate over, was well supported by Saifuddin.
Jarvis ended with a career-best 4-37 and Chatara claimed 3-55.
Cephas Zhuwao gave Zimbabwe a rapid start before fast bowler Mustafizur Rahman removed him for 35.
With the pitch slowing considerably under the lights, Bangladesh spinners did their job perfectly to strangle Zimbabwe's innings.
Off-spinner Mehidy Hasan (3-46) and left-arm spinner Nazmul Islam (2-38) were key bowlers for Bangladesh.
Sean Williams (50 not out) and Kyle Jarvis (37) shared a defiant 67 for the ninth wicket.
The second ODI is on Wednesday in Chittagong.