Wicketkeeper Kusal Mendis (L) breaks the wicket to runout Mohammad Nawaz during the Asia Cup Super Four match at the Dubai International Cricket Stadium on Friday. AFP
Both teams have already booked their place in Sunday's title clash and are playing the last Super Four match of the tournament, which serves as a warm-up to the T20 World Cup in October-November.
Sri Lankan bowlers kept the Pakistan batters in check after they elected to field first. Hasaranga soon took charge to return figures of 3-21 including the key wicket of skipper Babar Azam for 30.
Openers Mohammad Rizwan and Babar found it tough to score and debutant fast bowler Pramod Madushan struck in his first over. He sent the in-form Rizwan, who is second to Virat Kohli in the tournament's run-scoring charts, back to the pavilion for 14.
Chamika Karunaratne ended Fakhar Zaman's stay on 13 and Pakistan slipped further when Hasaranga bowled Babar.
Babar, who has struggled in the tournament with scores of 10, 9, 14 and nought in his previous innings, began with a delightful straight drive for four but could not produce a match-defining score.
Pakistan kept losing wickets and Hasaranga finished his spell with two successive wickets to flatten the Pakistan batting, which survived only 19.1 overs despite a late cameo of 26 by Mohammad Nawaz.
Spinner Maheesh Theekshana and Madushan took two wickets each. Pre-tournament favourites India, who lost two of their three Super Four matches, crashed out after Afghanistan lost to Pakistan on Wednesday.Agence France-Presse