The opening pair of Zaman and Azhar Ali stitched together a 74-run partnership.
Ali's dogged (34) came to a premature end also after Babar Azam (10) and Mohammad Hafeez (1) failed to contribute.
Pakistan lost the middle order in a hurry with seasoned campaigner Shoaib Malik (11), Imad Wasim (4) and Fahim Ashraf (15) not lasting long.
It was down to Sarfraz to lead from the front and the 30-year old made the most of two reprieves to steer Pakistan over the line along with important contribution from Amir.
Sarfraz, whose innings was laced with five boundaries, was dropped twice by Thisara Perera and substitute Seekkuge Prasanna on 38 and 40 respectively, both times off Lasith Malinga's bowling.
Earlier, Pakistan pacers put up a stunning display to dismiss Sri Lanka for 236 runs in 49.2 overs.
Fast bowlers Junaid Khan (3/40), Hasan Ali (3/43), Amir (2/53) and debutant Ashraf (2/37) ran through the deep Sri Lankan batting line-up which stood firm against favourites India the other day, giving Pakistan's less equipped batting a 237-run target to chase down for victory.
For Sri Lanka, Niroshan Dickwella (73) was the top-scorer who along with skipper Angelo Mathews (39) stitched together the highest partnership of the innings - 78 runs for the fourth wicket.
Towards the end, Suranga Lakmal (26) and Asela Gunaratne (27) joined hands for a vital 46-run partnership for the eighth wicket which helped their side cross the 200-mark.
At the start, Junaid sent back Danushka Gunathilaka (13) who gave Malik at mid-off an easy catch.
Kusal Mendis (27) and Dickwella had set up a 56-run second-wicket stand when a Hasan Ali ripper went through the former's defence as he was trying to whip the ball on the leg side.
Debutant Ashraf further shaved off the Sri Lankans' top order by bagging his first ODI scalp, sending Dinesh Chandimal back in the hut for a duck.
Amir got his first wicket in the tournament as he removed Mathews (39) with a angling delivery that got a thin inside edge off the bat and onto the stumps.
Dhananjaya De Silva (1) did not last long handing Junaid Khan his second wicket off a brilliant delivery as Sri Lanka had half their side down for just 162 in 33 overs.
In the next over, Sarfraz took a brilliant catch diving to his right to dismiss the dangerous Dickwella off Amir's bowling.
Perera could manage just 1 as Junaid picked up his third wicket and Pakistan bowlers made the most of swing on offer to outfox the Sri Lankan batsmen.
Lakmal and Gunaratne batted well towards the end to propel Sri Lanka to a decent total before removed the pair. Malinga remained not out on 9 as Ashraf got the better of Nuwan Pradeep (1).
Brief scores: Sri Lanka -- 236 all out in 49.2 overs (Niroshan Dickwella 73, Angelo Mathews 39; Junaid Khan 3/40, Hasan Ali 3/43, Fahim Ashraf 2/37, Mohammad Amir 2/53); Pakistan 237/7 in 44.5 overs (Sarfraz Ahmed 61 not out, Fakhar Zaman 50; Nuwam Pradeep 3/60)