Pakistan beat England by one wicket after a record last-wicket stand.
Ben Duckett hit 105, but England were bowled out for 241 in Lahore.
Shaheen Shah Afridi took four wickets for 46 runs for Pakistan.
Pakistan lost nine wickets with 88 runs still needed to win.
Shadab Khan came in during the 24th over and refused to give up.
Shadab was given out leg before wicket, but a review found an inside edge.
Shadab reached his first ODI hundred with back-to-back fours.
No number eight batter had ever scored more in a one-day match.
Haris Rauf made seven not out and hit the winning boundary.
Their 89-run stand is the biggest last-wicket stand in a winning ODI chase.
Pakistan are through to the final in Lahore on Saturday, October 31.
Read the full explainer on Rive News, with every number behind the win.
Get the full breakdown, key numbers, and what happens next.
Read on Rive News