Dropped in the covers on nought, Nafees helped the Tigers recover from 26-2 in the 10th over after being put in.
He shared some good partnerships of 84 runswith Saqibul Hasan (37) and 80 from just under 14 overs with skipper Habibul Bashar (30).
Neither team can qualify for the main tournament after both were beaten by Sri Lanka and West Indies.
Bangladesh gave Mehrab Hossain a debut and recalled Rajin Saleh, with Mohammad Ashraful and Syed Rasel dropping out.
The Zimbabweans had permission to field all-rounder Gary Brent as a replacement for Terry Duffin who has been unwell.
Looking to atone for a 3-2 series defeat in Zimbabwe in August, Bangladesh made a nervous start, losing Rajin Saleh who was trapped in front in the fifth over after playing across the line.
Aftab Ahmed soon joined him in the pavilion when he gloved a leg-side delivery and was superbly latched up by gloveman Brendan Taylor.
Nafees and Saqibul rebuilt the innings steadly, bringing up the 100 in 27.3 overs, with the opener reaching 50 from 92 balls shortly afterwards.
Saqibul departed when he failed to get on top of a cut and was well caught diving forward to his left by Ed Rainsford.
Nafees continued and recorded the 150 by sweeping the first ball of the 39th over for four, then backed away to carve the next ball from Prosper Utseya over cover for four more.
He continued the assault in the Zimbabwe skipper's next over, moving into the 90s by stepping down the pitch and sweeping for six, eventually reaching three figures from 143 deliveries.
Wickets tumbled in the search for quick runs, Bashar deceived by Rainsford, Farhad Reza mis-timing to extra-cover and Mashrafe Mortaza holing out to long-on off Brent.
Nafees remained on 123, only the second Bangladesh batsman to carry his bat in a one-day international innings, after Javed Omar who achieved the feat twice but failed to make a century.
Brief Scores: Bangladesh 231 for 6 in 50 (Shahriar Nafees 123 not out, Saqibul 37, Habibul Basher 30; Ed Rainsford 2 for 41, Anthony Ireland 2 for 45) vs Zimbabwe