Pakistan lead the five-match series 1-0 after the first match was washed out at Cardiff.
In a match reduced to 40 overs a side because of rain, Pakistan reached 169-3 with 20 balls to spare, with their middle order steering them to victory.
Shoaib's 4-28 and Asif's 2-10, both from their allotted eight-over spells, destroyed England's batting and laid the foundations for the Pakistan win.
Although seamer Jon Lewis removed the openers with just 30 runs on the scoreboard, Younis Khan top scored with 55 before Mohammed Yousuf (49 not out) and skipper Inzamam-ul-Haq (42 not out) steered the visitors past England's total of 166.
An error by umpire Billy Doctrove, who partnered Australian Darrell Hair in the controversial Oval test two weeks ago, proved to be the turning point in the match.
When Pakistan were 32-2 and Younis on 15, Lewis gleaned an edge to wicketkeeper Chris Read but Doctrove called a no-ball.
Television replays suggested the umpire had made the wrong call.
England's total was boosted by a seventh-wicket stand of 53 between Rikki Clarke (39) and Chris Read (30) from just 57 deliveries.
A rejuvenated Shoaib, who made his comeback this week after a six-month layoff with knee and ankle injuries, looked refreshed and full of energy.
In dull and bowler-friendly conditions, he earned his first wicket with the sixth ball of the match as Andrew Strauss departed for a duck after edging a stinging delivery to the wicketkeeper.
He also got form man Ian Bell to edge to first slip and then, in his second spell, he bowled Clarke and Darren Gough, the latter with his signature in-swinging Yorker.