Jon Lewis and Sajid Mahmood found away swing early on before debutant Michael Yardy (3-24) and the slow bowlers took over despite skipper Inzamam-ul-Haq's fine 47.
But a belligerent Razzaq then tore into the seamers to crash five sixes and as many fours in his 75 off 72 balls as 69 runs came in the last four overs.
England went off shell-shocked but will still hope to pull it back to 2-1. The hosts took drastic action by dropping opener Marcus Trescothick after his decision to sit out the Champions Trophy next month.
But it was the bowling department that delivered for the first 46 overs.
Lewis bowled beautifully and deserved more than the wickets of Mohammad Hafeez and Younis Khan, who were both snaffled in the slip region.
Shahid Afridi hammered Stuart Broad down the ground for six but was plumb lbw to Mahmood moments after substitute Rikkie Clarke dropped a sitter at third man off Lewis.
Yousuf's timing was all off - it took him 48 balls to hit his first boundary - and all the attack came from Inzamam, who hit six fours in his 56-ball knock. Three of those came in one Mahmood over but England's stranglehold on the game was illustrated by the fact that it took 80 balls for the duo to add 50 and 100 was passed in the 25th over.
Yousuf put himself out of his misery by chopping a quicker delivery from Yardy on to his stumps before Shoaib Malik lobbed a return catch to the Sussex all-rounder two balls later.
Jamie Dalrymple (1-38) also kept it tight and was rewarded when Inzamam fell in similar fashion in the very next over.
England were rampant and Kamran Akmal and Razzaq could both have been caught by Andrew Strauss at slip off a wily Yardy before the combination worked to send Akmal on his way.
Shoaib Akhtar heaved a mighty six off Dalrymple and was dropped by Strauss at short extra-cover before Trescothick's replacement Ed Joyce held on at third man to give Broad a wicket.
Strangely, Strauss decided to replace him with Sajid and it was a disastrous decision as Razzaq opened out with a string of pulls and cleanly-hit cross-bat smashes to mid-wicket in a sensational exhibition against the Lancashire paceman. Mahmood's last over, the 49th, went for 26 and Lewis's final six balls went for 21, with the final two deliveries of the innings both deposited into the stands.
SCOREBOARD
Pakistan
Mohammad Hafeez c Strauss b Lewis 8
Shahid Afridi lbw b Mahmood 23
Younis Khanc Collingwood b Lewis 0
Mohammad Yousuf b Yardy 29
Inzamam-ul-Haq c & b Dalrymple 47
Shoaib Malik c & b Yardy 0
Abdul Razzaq not out 75
Kamran Akmal c Strauss b Yardy 10
Shoaib Akhtar c Joyce b Broad 10
Rana Naved-ul-Hasan not out 9
EXTRAS: (LB-8, W-16) 24
TOTAL: (for 8 wickets, 50 overs) 235
FALL OF WKTS: 1-11, 2-17, 3-41, 4-115, 5-115, 6-117, 7-138, 8-165,
BOWLING: Broad 7-1-33-1 (3w), Lewis 10-1-49-2 (1w), Sajid 8-1-58-1(4w), Dalrymple 10-0-38-1 (1w), Collingwood 2-0-9-0 (1w), Yardy10-1-24-3, Pietersen 3-0-16-0 (1w).
TOSS: Pakistan won toss
England: Ed Joyce, Andrew Strauss (capt), Ian Bell, Kevin Pietersen, Paul Collingwood, Jamie Dalrymple, Michael Yardy, Chris Read (wkt), Jon Lewis, Sajid Mahmood, Stuart Broad.
Umpires: Daryl Harper (AUS), Mark Benson (ENG)
TV umpire: Ian Gould (ENG)
Match referee: Mike Procter (RSA).
—Agencies