On a Cardiff ground where they chased more than 300 to beat England in an ODI previous year, Pakistan completed Wednesday's pursuit with a mammoth 77 balls to spare when Mohammad Hafeez pulled Stokes for four.
Meanwhile, England coach Trevor Bayliss reckoned a semi-final exit was consistent with an ODI ranking of fourth.
The final is at The Oval on Sunday.
England had been the only unbeaten team in the eight-strong one-day worldwide tournament and huge favourites to defeat Pakistan, but were bowled out for just 211 on Wednesday.
He went on to say, "We all know what happens and what not, and I can't tell you how they have won the games, I can't name them".
Morgan added Pakistan were more comfortable because "they played two days ago on it (when beating Sri Lanka in a virtual quarter-final)".
He said: "We will have to evolve in whatever manner the game does over the next two years in the lead-in to the World Cup, but certainly I think we're moving in the right direction". "Fair credit to Pakistan, they played brilliantly".More news: New Lawsuit Against Trump Accepting Foreign Income
Root fell when well set after an edged cut off leg-spinner Shadab Khan was well held by wicket-keeper Sarfraz.
England faltered from 128 for two to lose their last eight wickets for just 83 runs in under 23 overs on a low, slow surface.
The match took place on a pitch which had already been used in the tournament, when Pakistan beat Sri Lanka in their Group B clash. Mohammad Amir wasn't playing but Raees came in and did well.
"I don't think we were simply used to it". "This is what we would require in the final to claim the title".
But Ahmed wasn't taking anything away from his bowlers' performance on Wednesday. Led by pace bowler Hasan Ali, who took 3-35, and backed up by some tigerish fielding that improved after Jonny Bairstow (43) was dropped twice, Sarfraz Ahmed's team squeezed the host nation. They looked good with the batting and the bowling was in tremendous form. The hosts had reached 118-2 with Morgan and Test captain Joe Root at the crease. After the India match, we just motivated the guys. Zaman has provided Pakistan some electrifying starts. Pakistan's openers then compounded England's misery to the delight of their supporters at a sun-drenched Cardiff.
Mohammad Hafeez (31 not out) hit Stokes for a boundary to seal the win, sharing a 42-run partnership for the third wicket with Babar Azam (38 not out).
England collapsed to 211 all out, with no batsman making a fifty in an innings where they could not manage a single six.