Sydney: Pakistan skipper Misbah-ul-Haq (91 not out) and Umar Akmal (65) kept them in contention, and Shahid Afridi saw them home with seven balls to spare.
For England, Alex Hales (31) and Gary Ballance (57) came into the England side but both got out playing loose shots when well set.
Joe Root then hit 85 from 89 balls but fell in the penultimate over as England finished on 250-8 from their 50 overs.
England now have to decide on the make-up of their XI to face Australia in Melbourne when the tournament begins on Saturday - with the biggest decisions resting over who joins pace pair James Anderson and Stuart Broad in the bowling attack.
Batsmen Hales and Ballance, who did not feature in England's recent one-day tri-series against Australia and India, were given a final chance to press their credentials as Ian Bell and James Taylor sat out, while Anderson and Broad - rested against the Windies - returned in place of Chris Woakes and Steven Finn.
Moeen Ali failed to build on the 46 he made against West Indies, getting a leading edge to cover for four, bringing Hales and Ballance together.
Although a second-wicket stand of 64 promised much, both players fell tamely to leg-spin as Hales gave Sohaib Maqsood a simple catch at mid-wicket off Afridi, while Ballance picked out the same fielder on the leg-side fence when trying to attack Yasir Shah (3-45).
Captain Eoin Morgan followed in the same over, edging to slip when trying to lap-sweep his third ball.
As Root anchored the innings, Ravi Bopara and Jos Buttler both got in and got out, but Root found a more durable partner in Chris Jordan (31 not out) as England reached the 250 mark off the last ball of their innings.
After Broad and Anderson had accounted for Pakistan's openers, England turned to seamer Jordan and spinner James Tredwell, who are battling with Finn and Woakes for those bowling places.
Jordan and Tredwell took a wicket apiece, inducing false shots from Younus Khan and Haris Sohail as Ballance threw himself around in the deep to take the catch on both occasions.
It left Pakistan's hopes resting on the shoulders of the vastly experienced Misbah, who added 133 with Akmal to keep his side in contention, and by the time Akmal edged Broad to keeper Buttler, Pakistan still needed 40 more from 33 balls.
Maqsood then pulled two of his first three balls for four but when he fell with eight runs needed from 14 balls, the stage was set for the big-hitting Afridi, roared on by a noisy Pakistan fan contingent inside the SCG.
The 34-year-old all-rounder did not disappoint, blasting Broad for successive fours in the penultimate over.
Brief scores
England - 250/8 (Root 85, Ballance 57, Yasir Shah 3-45, Sohail Khan 2-47)
Pakistan - 252/6 (Misbah-ul-Haq 91*, Umar Akmal 65, Anderson 2-42, Broad 2-51)
Result - Pakistan won by four wickets