England reached 283-5 after winning the toss and batting first, with opener Alex Hales getting his maiden ODI century, then bowled out Pakistan for 188 in the 46th over.
Pakistan never got going after losing the first two wickets for 10 runs, including that of first-match centurion Mohammad Hafeez for a duck.
England's left-arm opening bowler David Willey got rid of Hafeez and new opener Babar Azam before finishing with 3-25. He was given excellent support by Chris Woakes, who took 4-33.
Despite losing the first match by six wickets Wednesday when Pakistan easily chased down 216, England elected to bat first again and got a brilliant start from the top order.
Also Read
Hales made 102 in the opening stand with Jason Roy (54), then 114 for the second wicket with Joe Root (63).
His 109 had three sixes and seven fours. It was his first century in 21 ODIs, and he was out stumped by wicketkeeper Sarfraz Ahmed when he tried to sweep Iftikhar Ahmed.
But Pakistan fought back in the final 10 overs, restricting England to just 56 runs and picking up three wickets.
Paceman Wahab Riaz took 3-43 in his 10 overs, and was the most successful Pakistan bowler. Debutant Iftikhar Ahmed and tall paceman Mohammad Irfan shared the other wickets.
The third ODI in the four-match series will be played in Sharjah on Tuesday.