The visitors had posted a competitive 235 for seven in their 50 overs after winning the toss and opting to bat first at Dubai International Cricket Stadium.
Upul Tharanga and Mahela Jayawardene both put on fifties for Sri Lanka during their innings.
Umar Akmal looked to be on course for a much-needed century in reply for Pakistan, but he fell nine runs short as Dinesh Chandimal caught off a Dilhara Fernando delivery.
However, the damage had already been done at the top of the order, with Mohammad Hafeez, Imran Farhat and Younis Khan going for a collective seven runs.
The returning Shahid Afridi scored a defiant 29, but it was too little too late, and Sri Lanka have now levelled the series 1-1.