Pakistan reached 187 for six in 18.5 overs, with seven balls to spare, to take a 1-0 lead in the series.
Chasing 183, Pakistan got off to a brisk start through Fakhar Zaman and captain Farhan.
Fakhar scored 21 off 13 balls before falling in the sixth over, but Farhan continued to keep the scoreboard moving.
Sadaqat provided further impetus with an explosive 50 off 29 deliveries, including four fours and three sixes. He shared a crucial partnership with Farhan before falling with Pakistan closing in on the target.
Farhan top-scored with 89 off 53 balls, smashing 10 fours and four sixes.
His dismissal in the 18th over briefly raised Sri Lanka's hopes, but Khawaja Nafay's unbeaten 12 off seven balls helped Pakistan cross the finish line.
For Sri Lanka, Maheesh Theekshana and Eshan Malinga claimed two wickets each.
Earlier, Sri Lanka posted 182 for eight after being asked to bat. Lahiru Udara led the innings with an impressive 91 off 55 deliveries, hitting 11 fours and a six.
Sri Lanka struggled early, losing captain Kusal Mendis for one and Kamil Mishara for six.
Udara then anchored the innings, receiving support from Kamindu Mendis, who scored 23, and Dasun Shanaka, who made 18.
Pakistan's Naseem Shah took three wickets for 36 runs, while Mohammad Imran claimed two for 21. Their efforts restricted Sri Lanka to 182 despite Udara's outstanding knock.
The second T20I will be played at the same venue as Pakistan look to extend their lead in the series.