Mohammad Hafeez regained his batting form in one-day internationals with a gritty 122 off 129 balls as Pakistan tallied 322-5 against Sri Lanka on Wednesday.
Hafeez scored just 93 runs against South Africa in the last six ODIs but came back strongly by hitting seven fours and three sixes after Pakistan won the toss and elected to bat first.
He set the tempo for a big total by sharing 83 runs with debutant opener Sharjeel Khan (61) before putting on better than a run-a-ball 140 runs with Sohaib Maqsood (73).
Shahid Afridi hammered 34 off 11 balls as Pakistan added 64 runs in the last six overs to post its best ODI total in 2013.
Suranga Lakmal, who dismissed Hafeez in the last over, finished with 2-73.