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.
But Kayes' 112 at the top of the order and Shakib (79 from 55 balls) put on a 118-run stand to lead Bangladesh to the brink of victory, only for them to lose their last six wickets for 17 runs.
England 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.
Buttler, leading England in the absence of Eoin Morgan, who, along with Alex Hales, opted to miss the tour for security reasons, opted to bat first in hot and humid conditions at the Shere Bangla National Stadium, where James Vince departed for 16 after spooning Shafiul Islam to mid-on.
Jason Roy was characteristically busy but was out for 41 after skying a catch to long-off and England were 63 for three once 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 all-rounder settled after disdainfully thumping Mosaddek Hossain 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.
Duckett was more measured in his approach but he manoeuvred the spinners well in providing shrewd support to Stokes, who was dropped on 69 and 71.
Duckett, 21, moved unassumingly to his half-century off 63 balls but was out for 60 after being cleaned bowled by Shafiul, while Stokes moved to three figures for the first time in this format with a single through his favoured midwicket region.
He was out for 101, with eight fours and four sixes, as he attempted to go for another big shot while Moeen Ali succumbed to the short ball.
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 before he was finally out for 63 off 38 balls as England finished their innings strongly.
But Bangladesh have won their last six series in a row and made a terrific start when Kayes, a centurion in England's warm-up win on Tuesday, thumped Woakes for six in the first over of the reply, which yielded 11 runs.
Woakes dragged back his length and conceded just 14 from his next five while Ball capitalised on the Warwickshire seamer's good work when a frustrated Tamim Iqbal skied a catch to Vince at cover.
Ball had his second wicket following a highlight-reel catch by David Willey to dismiss Sabbir Rahman on the boundary, but the hosts managed to keep the rate ticking along thanks to Kayes, who brought up his half-century with a top-edge over Buttler's head for his seventh four.
Rashid was expensive early on and although he claimed the wickets of Mahmudullah and Mushfiqur Rahim, both of whom were caught on the boundary, the dangerous Kayes continued to accumulate.
He brought up a 105-ball hundred after Willey's run-out attempt ricocheted off the stumps and went to the boundary while the positive Shakib bashed Moeen down the ground for six.
By the time he reached his half-century off only 39 balls it seemed the hosts were firmly in the ascendancy, but Ball took two in two when Shakib pulled to midwicket and Mosaddek bottom-edged onto his stumps.
Mashrafe Mortaza was caught behind in the next over after Rashid was brought back into the attack and the leg-spinner had his fourth wicket when Kayes' excellent innings was ended when he was stumped off a wide delivery.
The tide had turned dramatically and Ball sealed an unlikely victory for England when Taskin Ahmed was caught behind as Bangladesh were all out in 47.5 overs.