After winning the toss and choosing to bowl, it took England some time to find the breakthrough as the partnership between Tamim Iqbal and Imrul Kayes produced 80 runs in Chittagong.
Ben Stokes was the man to claim the first wicket as he dismissed Kayes for 46 in the 19th over, while Iqbal fell five runs short of a half-century at the hands of Adil Rashid .
It was a positive display with the ball from Rashid as he nabbed four wickets in total, while Moeen Ali and Stokes took one apiece.
Mushfiqur Rahim was the only Bangladesh player to surpass 50 runs as he ended the innings unbeaten on 67, with one six and four boundaries.
After the hosts posted 277-6, England responded with opener Sam Billings , who hit 62 runs off 69 balls, while his partner James Vince scored 32 runs before getting trapped lbw by Nasir Hossain .
Ben Duckett impressed for England as he scored his second half-century in three ODIs, eventually ending the innings with a knock of 63.
England needed 78 from 78 balls to win the series, and despite losing Jos Buttler (25) and Ali (1) in the closing stages, the tourists got over the line.
Stokes hit two sixes and one four to end the innings unbeaten on 47 runs, while Chris Woakes , who survived a drop catch, sealed the victory with a six.
The result marks the first time that Bangladesh have lost a bilateral ODI on home turf since June 2014.