Wanindu Hasaranga (3rd L) and Pathum Nissanka leave the field with Pakistan players at the end of the T20 match in Dubai on Friday night. AFP
Both teams have already booked their place in Sunday's title clash at the warm-up tournament to the T20 World Cup in October-November.
Hasaranga returned figures of 3-21 with his leg-spin to help bowl out Pakistan for 121 in 19.1 overs after Sri Lanka elected to field first in Dubai.
Sri Lanka slipped to 29-3 in their chase before Pathum Nissanka (55 not out) and Bhanuka Rajapaksa (24) put on a stand of 51 as the island nation achieved their target with three overs to spare.
Wanindu Hasaranga (L) celebrates after dismissing Pakistan's captain Babar Azam (not pictured) in Dubai. AFP
The left-handed Rajapaksa fell after his 19-ball knock but Nissanka stood firm and Hasaranga hit the winning runs as Sri Lanka registered their fourth straight victory.
"The confidence we have is massive after four consecutive wins, but we still don't take Pakistan lightly in the final," skipper Dasun Shanaka, who turned 31 on Friday, told reporters.
"We know they are a very good side and enough good players in their side to come back strong and we should be ready for that."
Pakistan skipper Babar Azam said the game was a "good learning experience" ahead of the final. It was the Sri Lankan bowlers who began their team's domination of the match as debutant fast bowler Pramod Madushan struck in his first over.
He sent the in-form Mohammad Rizwan, who is second to Virat Kohli in the tournament's run-scoring charts, back to the pavilion for 14.
Kusal Mendis breaks the wicket to runout Mohammad Nawaz. AFP
Chamika Karunaratne ended Fakhar Zaman's stay on 13 and Pakistan slipped further when Hasaranga bowled Azam.
Azam, 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 opposition batting, which survived only 19.1 overs despite a late cameo of 26 by Mohammad Nawaz.
"I am really happy because last few games I went for some runs," Hasaranga said. "Have come back strong with some good quality wickets, so happy. I tried bowling dot balls in first few overs, that's why the three wickets came." Spinner Maheesh Theekshana and Madushan took two wickets each.
Pakistan's fast bowlers took three early wickets to put Sri Lanka on the back foot before Nissanka and Rajapaksa put the chase back on track.
Mohammad Hasnain gave his team a dream start when he dismissed Kusal Mendis for a first-ball duck with the second ball of the innings.
Fellow quick Haris Rauf got a wicket in each of his first two overs to send back Danushka Gunathilaka, for nought, and Dhananjaya de Silva, for nine.
Nissanka then got going with Rajapaksa and despite losing his partner after a strong stand, reached his seventh T20I fifty for Sri Lanka. He was then joined by Shanaka, who made 21 off 16 balls before falling to Hasnain.
"He has got a great career ahead and a very talented guy," Shanaka said of Nissanka.
Pre-tournament favourites India, who lost two of their three Super Four matches, crashed out after Afghanistan lost to Pakistan on Wednesday.