Amir was sidelined with a back spasm, having been a key figure in Pakistan's virtual quarter-final win against Sri Lanka in Cardiff on Monday.
The left-arm quick took two for 53 and also starred with the bat, making an unbeaten 28 in a match-clinching unbroken stand of 75 with Pakistan captain Sarfraz Ahmed (61 not out) that clinched a three-wicket win.
Amir was replaced by fellow left-arm seamer Rumman Raes, making his ODI debut.
The 25-year-old Rumman, originally summoned as an injury replacement for Wahab Riaz after the fast bowler suffered a tournament-ending ankle injury against India, has represented Pakistan in two Twenty20 Internationals to date.
The 25-year-old has also taken 123 wickets in 42 first-class matches.
Pakistan made another change bringing in leg-spinning all-rounder Shadab Khan in place of Fahim Ashraf, a pace-bowling all-rounder.
Meanwhile England dropped struggling opener Jason Roy, whose four in the 40-run group win over Australia meant he'd averaged just 6.37 from eight one-day international innings this season, with a mere two double-figure scores.
Roy was replaced by Test wicket-keeper Jonny Bairstow, who has scored three fifties in his last four ODI innings.
Bairstow has never before opened at this level but did make his highest List A score of 174, for Yorkshire against Durham, at the top of the order last month.
For the second time in three days in Cardiff, Sarfraz won the toss and elected to field on what was now a used pitch.
Tournament hosts England are the only unbeaten side left in an event featuring the world's top eight ODI sides, having won all three of their group games.
"We would have batted first anyway," said England captain Eoin Morgan at the toss.
"Throughout the competition, this pitch has shown to be better to set a target than chase one.
"Pakistan can beat any team in the competition on their day so we're preparing for their best," the top-order batsman added.
Meanwhile Sarfraz said: "England are a good team so we have to play positive cricket against them."
Pakistan, batting second as they will in this match, beat England by four wickets in an ODI at Cardiff last year after chasing down a target of 303.
Title-holders India and Bangladesh meet at Edgbaston in Thursday's second semi-final, with the final at London's Oval on Sunday.
England: Alex Hales, Jonny Bairstow, Joe Root, Eoin Morgan (capt), Ben Stokes, Jos Buttler (wkt), Moeen Ali, Adil Rashid, Liam Plunkett, Mark Wood, Jake Ball
Pakistan: Azhar Ali, Fakhar Zaman, Babar Azam, Mohammad Hafeez, Shoaib Malik, Sarfraz Ahmed (capt/wkt), Imad Wasim, Shadab Khan, Rumman Raees, Hasan Ali, Junaid Khan
Umpires: Marais Erasmus (RSA), Rod Tucker (AUS)
TV umpire: Chris Gaffaney (NZL)
Match referee: Andy Pycroft (ZIM)