CARDIFF, WALES - JUNE 14: Mohammad Hafeez (L) of Pakistan celebrates hitting the winning runs with Babar Azam (R) and victory by 8 runs during the ICC Champions Trophy Semi-Final match between England and Pakistan at the SWALEC Stadium on June 14, 2017 in Cardiff, Wales. (Photo by Michael Steele/Getty Images)

Pakistan will return to a major ODI final for the first time since the 1999 World Cup after they smashed tournament favourites England by eight-wickets in the first Champions Trophy semi-final overnight.

The hosts were expected to breeze past their opponents and cruise into this weekend's final, but a strong bowling performance coupled with a 118-run opening-wicket stand saw Pakistan roll over England with ease.

England got off to a relatively strong start, as opener Jonny Bairstow and Joe Root at first drop looked to set the tone with solid scores of 43 and 46 respectively.

After Bairstow fell at 2-80, Root's wicket was claimed with England in control at 3-128, with the talented duo of Eoin Morgan and Ben Stokes at the crease.

Morgan had played himself into a rhythm with Root but was dismissed soon after Stokes came to the crease, as the captain's wicket began an England free fall.

The hosts went from 4-141 to 7-181 as Jos Buttler, Moeen Ali and Adil Rashid only combined for 22 runs, while Stokes was struggling to use his time out in the middle effectively.

He was the next to fall on 34, although they came from 64 balls, which saw his strike rate sit at a lowly 53.13.

England were dismissed for 211 with one ball to spare, as Hasan Ali led the way with 3-35.

Azhar Ali and Fakhar Zaman gave the Pakistanis the best possible start to the chase, as the duo settled in quite early and put some runs on the board.

Zaman was stumped by Buttler off the bowling of Rashid in the 21st over, as the pair piled on 118 runs for the opening-stand.

Babar Azam and Mohammad Hafeez then finished off the job for the underdogs with 77 balls remaining, as Pakistan ended their 18-year drought for a major ODI final.

They'll face either Bangladesh or India in the final at The Oval on June 18th.