After being sent in to bat, Zimbabwe recovered from 8 for 2 thanks to Curran's unbeaten 111 off 135 balls.
The opener anchored the innings before Brad Evans produced a late assault, smashing an unbeaten 58 from 38 deliveries, including five sixes, as the pair stitched together an unbroken 99-run stand for the seventh wicket to lift the hosts to 247 for 6.
Bangladesh's bowlers dominated the opening half of the innings, with Taskin Ahmed removing Brian Bennett for a duck and Innocent Kaia early, while Nahid Rana dismissed Craig Ervine.
Mehidy Hasan Miraz struck twice in the middle overs before Rishad Hossain removed Clive Madande, leaving Zimbabwe at 148 for 6. However, Bangladesh failed to break the Curran-Evans partnership as the hosts finished strongly.
Chasing 248, Bangladesh lost Soumya Sarkar and Najmul Hossain Shanto cheaply before Tanzid Hasan and Towhid Hridoy rebuilt the innings with a 84-run partnership. Tanzid struck 57 off 70 balls, while Hridoy made 60 from 90 deliveries to keep the visitors in the hunt.
After Tanzid's dismissal, Nurul Hasan injected momentum with a brisk 38 off 41 balls, sharing useful stands with Hridoy and captain Miraz. However, Zimbabwe's seamers kept striking at crucial moments.
Richard Ngarava removed Nurul, Mosaddek Hossain and Miraz to finish with 3 for 55, while Blessing Muzarabani claimed two wickets, including Rishad Hossain.
Brad Evans dismissed Shanto and Shoriful Islam, and Brian Bennett broke the Tanzid-Hridoy partnership with the key wicket of Tanzid.
Bangladesh were eventually bowled out for 234 in 48.1 overs, falling 13 runs short despite Hridoy's fighting half-century.