Bangladesh all-rounder Shakib Al Hasan delivered with bat and ball as they beat England by 50 runs in the third one-day international to earn a consolation win and deny the tourists a clean sweep in Chattogram on Monday.
After top scoring with the bat to score 75 runs and help Bangladesh post 246, he returned with the ball to finish with figures of 4-35 as the 35-year-old became the first Bangladeshi player to take 300 ODI wickets.
England's openers, Jason Roy and Phil Salt, laid the foundation for the run-chase with a 54-run partnership before the tourists lost three quick wickets.
James Vince, Sam Curran and Jos Buttler also got starts but wickets fell at regular intervals as Shakib dismissed three of the top four batsmen.
Shakib almost capped his performance with a five-wicket haul when he trapped Jofra Archer leg before wicket with his final delivery but the England pacer successfully reviewed the decision before Chris Woakes became the last wicket to fall in the next over.
Earlier, Bangladesh won the toss and opted to bat, but all-rounder Curran gave England an ideal start after dismissing the two openers in his first spell.
But Shakib smashed 75 off 71 deliveries while Mushfiqur Rahim (70) and Najmul Hossain Shanto (53) also notched half centuries to help Bangladesh post a respectable total.
The hosts' last six batsmen failed to build on the middle order's partnerships, however, as England pacer Archer finished with three wickets while Adil Rashid picked up two.
England will next play Bangladesh in three Twenty20 matches starting on Thursday.