Bangladesh had set England a target of 306, but the tournament's hosts never looked in trouble as Joe Root hit an unbeaten 133 to help his team to the win with 16 balls to spare.
Despite Eoin Morgan winning the toss, England struggled to take wickets when Bangladesh took to the crease, with a third-wicket partnership of 165 between Tamin Iqbal (128) and Mushifiqur Rahim (79) taking their side to 261-2.
However, they fell in successive balls - both to Liam Plunkett - as they failed to make the most of having wickets in hand towards the end of their innings and they eventually reached 305-6 from their 50 overs.
Even with Jason Roy (1) being dismissed early, it felt as though Bangladesh were 20 runs short of a competitive total and they were were second best throughout England's innings as Alex Hales and Root put on 159 for the second wicket.
Hales (95) went five short of his century but after being joined by Morgan who went onto 75 from 61 balls, Root powered to his highest total in one-day internationals with his knock of 133 coming from 129 deliveries.
He will be a slight fitness doubt for Tuesday's game against New Zealand after sustaining an ankle injury during his innings, but this was the perfect start for England ahead of matches with the Black Caps and Australia.