Dawid Malan hit a stunning unbeaten century as world champions England beat Bangladesh by three wickets in the first one-day international of their three-match series.
The tourists were set a modest target of 210 and Malan brought up his century off 134 balls and got England over the line with three wickets and eight balls to spare, finishing on 114 not out in a spectacular innings.
The left-hander smashed eight fours and four sixes but more importantly held his nerve as wickets tumbled at the other end on a tricky surface to bring up his fourth century with a boundary in the 46th over.
Ably supported by Adil Rashid (17 not out) towards the end, he hit another to the fence to settle the contest.
Shanto navigated the spin and bounce to score an 82-ball 58 and ensure Bangladesh had a platform to go past the 200-run mark after they looked set to fall well short at one point.
He made the most of being dropped on four by Jason Roy and got another reprieve to get to reach his fifty but his dismissal triggered a late collapse.
Earlier, skipper Tamim Iqbal made 23 at the top of the order having opted to bat first but he edged one on to the stumps in Mark Wood's first over after Litton Das fell to Chris Woakes.
Paceman Wood removed the dangerous Mahmudullah for 31 and Jofra Archer grabbed two wickets after the spin trio of Moeen Ali (2-35), Rashid (2-47) and ODI debutant Will Jacks (1-18) combined to wreak havoc on the middle-order.
Bangladesh, who have won seven successive home ODI series after defeating India 2-1 in December, will look to respond when the teams face off at the same venue on Friday before the third game early next week.
England will also play three Twenty20 matches in Bangladesh as they seek valuable experience on Asian wickets for their 50-overs World Cup defence in India in October and November.