Jake Ball became the first England bowler to take five wickets on one-day international debut as he masterminded a stunning 21-run win over Bangladesh in the series opener in Dhaka.
The hosts appeared firm favourites to draw first blood after reaching 271 for four in pursuit of 310 for victory, largely thanks to Imrul Kayes' second century against England in the space of four days and Shakib Al Hasan's quickfire fifty.
But Ball, who was a late replacement for the injured Liam Plunkett, took the wickets of Shakib and then Mosaddek Hossain in successive deliveries to precipitate a stunning collapse.
Ball claimed five for 51, while Adil Rashid finished with career-best figures of four for 49, adding a run-out for good measure, as England claimed the initiative in this three-match series.
The tourists had set what looked to be an imposing total of 309 for eight following Ben Stokes' 101, his maiden ODI ton, allied to contrasting half-centuries from international debutant Ben Duckett and captain Jos Buttler.
Stokes has so far flattered to deceive in a format that seems tailor made for his brutal batting talents and although he was twice dropped here, his 101 lifted England to a total of 309 for eight in the first day-night ODI.
Duckett, making his international bow, is capable of being equally as explosive but largely reined in his attacking instincts to support Stokes, and his 60 in hot and humid conditions was impressive as the pair shared a 153-run stand.
Stand-in captain Buttler then blitzed a phenomenal 38-ball 63 to steer England, who won the toss, to a challenging score.
The tourists were coming up against the side that knocked them out of the World Cup last year, a defeat which proved something of a nadir and was the catalyst for a new dynamic approach in the shorter forms.
Jason Roy was characteristically busy but opening partner James Vince departed for 16 after spooning Shafiul Islam to mid-on.
Roy deposited Mosaddek Hossain over the midwicket boundary but was out in the next over for 41 after being caught at long-off, and England were in some strife on 63 for three when Jonny Bairstow ran himself out after attempting a quick single.
Stokes appeared ill at ease early on, scoring just seven from his first 17 balls, as the Tigers looked to strangle England with spin, but the Durham all-rounder settled after disdainfully thumping Mosaddek into the stands.
Two more meaty blows followed and Stokes demonstrated his growing confidence with a reverse sweep for four bringing up a 45-ball fifty.
As darkness descended, it seemed like England might struggle to reach 300 but skipper Buttler emphatically took them beyond that.
Like Stokes, Buttler too started slowly but three sixes and two fours in the space of seven balls helped him to a 33-ball fifty and his team to an encouraging total.
The hosts had looked like bettering England's total with as Kayes (112) and Shakib (118) lead Bangladesh to the brink of victory, only for them to lose their last six wickets for 17 runs.