It seemed all over for Bangladesh after the first innings. 209 felt like a score 'too little to defend' against world champions England, especially with their aggressive and long batting order. But the Tigers didn't give up. They pegged England back with early wickets and pressure from both ends.
The pressure was sustained throughout England's chase. On what seemed to be a tricky surface, Dawid Malan remained calm to seal a hard-fought three-wicket victory for the world champions.
He scored his fourth ODI hundred in only his 16th ODI innings and remained unbeaten on 114 runs off 145 balls. He started off slowly just like Bangladesh batters, but unlike the hosts, he kept on going to guide his team home.
The southpaw hit six boundaries and four maximums in his innings at a strike rate of 78.62.
Shakib Al Hasan drew the first blood by sending Jason Roy back to the pavilion in the very first over. Phil Salt and Malan then played cautiously but the partnership didn't last long.
Taijul was a tad expensive in his first few overs but he did give two crucial breakthroughs. He first picked up the wicket of Salt in the ninth over and then went on to send James Vince in the 13th over. England were three down for 45.
Taskin Ahmed breathed fire with the ball in hand. He picked up the important wicket of skipper Jos Buttler as he was caught by Shanto at the slips.
Will Jacks was the fifth batter to be dismissed as he was caught at the deep midwicket becoming Mehidy Hasan Miraz's first victim. Miraz then dismissed Moeen Ali to break the 38-run partnership between Malan and Moeen.
The world champions always looked to be the favourites to win the match but the regular fall of wickets made the match interesting.
When Chris Woakes was dismissed, England were still 49 runs away with three wickets in hand. Anything could have happened from there. But Malan, along with Adil Rashid, weathered the storm. Their unbeaten partnership guided England to a hard-fought victory.
Rashid remained unbeaten on 16 off 28 balls.
For Bangladesh, Taijul picked up three wickets giving away 54 runs. Miraz bagged a brace while Shakib and Taskin picked up a wicket each.
Earlier, Bangladesh batters failed to make use of the good start as England bundled the hosts to 209 runs.
Najmul Hossain Shanto's maiden ODI fifty was a sluggish one. His 58-run innings only helped the hosts to go past 200. Shanto bagged 58 runs from 82 balls before getting dismissed in a poor fashion to Adil Rashid.
Electing to bat first, Bangladesh lost both their openers - Tamim Iqbal and Litton Das - before the first 10 overs. Tamim scored 23 off 32 balls while Litton, who clearly struggled at the crease, bagged seven off 15 balls.
Mushfiqur Rahim struggled as well. His misery came to an end through Adil Rashid after scoring 16 from 34 balls at a strike rate of below 50.
Mahmudullah Riyad put up a 53-run partnership with Shanto but he got out in the 30s. The lower order couldn't contribute much to the scoreboard.
Afif Hossain, and Mehidy Hasan Miraz both got out before reaching the double-digit mark.
Surprisingly, no Bangladeshi batter scored at a strike rate of more than 80. Taskin was the the batter with highest strike rate (77.77) for the hosts.
For England, four bowlers - Mark Wood, Moeen Ali, Adil Rashid, and Jofra Archer - bagged a brace each.