Imad Wasim and Shaheen Shah Afridi led a Pakistan fightback but England still scored 351 for nine at Headingley as Tom Curran again pressed his case for a World Cup place.
England, in their last one-day international before the tournament hosts and favourites name their World Cup squad on Tuesday, were set for a huge score at 191 for two off 25 overs.
But several batsmen got themselves out, including Test skipper Joe Root, who top-scored with 84, and one-day captain Eoin Morgan, who made 76 on his return to the side.
Left-arm spinner Imad finished with fine figures of three for 53 in his maximum 10 overs.
Fast bowler Afridi took wickets at both ends of the innings in a return of four for 82.
But the last over saw Curran hit six and then ramp an outrageous four off successive Hasan Ali deliveries to take England to a competitive total.
Curran finished on 29 not out -- the second match in a row where the Surrey paceman had proved his worth as a lower-order batsman following his 31 in a series-clinching win at Trent Bridge on Friday.
England rested Jason Roy following the opener's century in Nottingham.
But they still scored rapidly after Morgan won the toss.
James Vince hit the first two balls of the innings from Hasan for four.
But Vince, yet again in his England career, got out when well set, falling for 33 when he top-edged a hook off Afridi to deep square leg.
Jonny Bairstow (32) drove Imad straight to long-on to the disappointment of his Yorkshire home crowd.
Morgan, back after missing Friday's match, following a one-game ban for slow over-rate offences, hit several sixes -- including a huge one onto the roof of the Old Pavilion Stand off Mohammad Hasnain.
But he too perished to a cross-bat shot, a pull off Afridi caught by Abid Ali, running round from midwicket towards square leg.
It was the end of a partnership with Root worth 117 in 18 overs.
Root was also in sight of a century when he holed out off Hasnain, having faced 73 balls including nine fours.
Imad then took two wickets in three balls to reduce England to 272 for six, dangerman Jos Buttler caught at backward point before Moeen Ali was plumb lbw for a duck.
Ben Stokes, who made a match-winning 71 not out in Nottingham, fell for 21 to Hasan.