Dimuth Karunaratne made an unbeaten 62 and fellow opener Kaushal Silva 58 as they chased down their target of 137 for the loss of just one wicket on day five.
Suranga Lakmal had earlier taken three wickets in the morning session to end Pakistan's hopes of salvaging a draw, mopping up the tail for the addition of just 29 runs as the home side were finally dismissed for 359.
Sri Lanka had few scares as they set about chasing down their target, Karunaratne hitting eight fours in his 125-ball knock.
Silva, who was dropped on by Asad Shafiq at cover when on 24, also brought up a half-century before he fell lbw to Saeed Ajmal.
Sri Lanka were already on 124, though, and Kumar Sangakkara (nine not out) joined Karunaratne at the crease to seal victory and a 1-0 lead in the three-match series.
Pakistan had started the final day on 330 for seven, an unlikely lead of 107 after wiping out a first-innings deficit of 223, Sarfraz Ahmed carrying their hopes as he looked to build on the maiden Test half-century he scored on day four.
He began the day on 70 but added just four more runs to his tally before Lakmal knocked over the stumps with an inswinger.
Sarfraz's dismissal sparked the beginning of the end for Pakistan.
Lakmal accounted for Rahat Ali (eight) soon after as wicket-keeper Prasanna Jayawardene pouched his fifth catch of the innings, and Ajmal was the last man to fall two overs later, his innings ended on 21 by the same bowler, who finished with figures of four for 78.
- Sports & Recreation
- Dimuth Karunaratne
- Suranga Lakmal
- Kaushal Silva
- Saeed Ajmal