Jonny Bairstow's England-record third ODI hundred in a row came in vain as Scotland stunned the No 1-ranked side in the world to win the one-off contest in Edinburgh by six runs.
Bairstow (105) followed his twin centuries in New Zealand over the winter with a 54-ball hundred at the Grange as England made a rampant start in pursuit of Scotland's highest ODI total of 371-5, an innings in which Calum MacLeod (140no) smashed a 70-ball ton.
However, England's charge collapsed in the middle overs as they slumped from 220-2 to 365 all out in 48.5 overs and Scotland went on to beat their rivals for the first time in ODI cricket at the fifth attempt, despite an eighth-wicket stand of 71 between Moeen Ali (46) and Liam Plunkett (47 not out) dragging the away side back into the game.
MacLeod's seventh ODI ton, the first by a Scotsman against England, had blazed Kyle Coetzer's men past the 341-9 they racked up against Canada in Christchurch in 2014 - a game in which MacLeod muscled a career-best 175.
Bairstow's belligerence seemed poised to see England to their highest successful run chase and the joint second-best in ODIs, level with the 372 South Africa managed against Australia in Durban in 2016 and behind only the Proteas' 438-9 against the Baggy Greens in Johannesburg in 2006.
But Scotland turned the game around, sealing victory when Safyaan Sharif pinned last man Mark Wood (1) lbw, to record their finest win to date and back up their form from the World Cup qualifiers earlier this year when only a five-run DLS defeat to Windies prevented them from reaching next summer's showpiece in England.
Skipper Coetzer (58) and fellow opener Matthew Cross (48) punished Morgan's men after being inserted, with the duo slamming 103 for the first wicket in under 14 overs, during which time Coetzer sealed his 12th ODI fifty, and third against England, with a six off Liam Plunkett.
The captain, making his 50th ODI appearance, was the first man to fall, inside-edging Adil Rashid (2-72) behind to Sam Billings, while Cross, who had taken a particular liking to David Willey's left-arm seam, snicked Plunkett (2-85) behind in the subsequent over, Billings again taking the catch.
MacLeod took over from that point, sharing stands of 93 and 107 with Richie Berrington (39) and George Munsey (55) respectively - Berrington profiting from being dropped by Joe Root at slip on two and Munsey pocketing a maiden ODI half-century in his 16th innings.
MacLeod swept beautifully in a 94-ball innings which contained 16 fours and three sixes, just one more boundary than Bairstow managed in his scintillating knock at the start of England's reply.
The Yorkshire player threatened to blast the fastest ODI century by an Englishman - Jos Buttler's 46-ball effort against Pakistan in Dubai three years ago - as he dominated an opening stand of 129 with Jason Roy (34) and helped the away side to 165-1 in the 18th over.
Bairstow eventually lofted Berrington to Munsey at long-off but that dismissal did not derail England too much as Alex Hales (52) and Root (29) added 55 for the third wicket, albeit that Hales would have fallen lbw to spinner Mark Watt (3-55) for 43 had Coetzer requested DRS in time.
The game spiralled out of England's control once Root was run out, with the visitors going on to lose five wickets for 56 runs, with Morgan (20) caught at midwicket by opposite number Coetzer and Hales slapping a long hop from Berrington to point from successive balls.
Billings (12) and Willey (7) fell to loose shots and although Ali - who slammed a century against Scotland during the 2015 World Cup - and Plunkett gave England hope, Scotland snuffed it out, with Ali smashing Watt to long-on, Rashid (5) run out by Michael Leask and Sharif's wicket of Wood sparking wild celebrations.
Comment below to get involved in the debate, but please adhere to our House Rules. If you wish to report any comment, simply click on the down arrow next to the offending comment and click 'Report'.