Afghanistan seamer Fazalhaq Farooqi took three wickets to help bowl out Sri Lanka for 160 after a late-innings collapse in their T20 series opener at Dambulla on Saturday.
Sri Lanka were well placed at 146-5 five heading into the last four overs but lost the last five wickets for just 14 runs from 25 deliveries.
Farooqi was pick of the bowlers with 3-25 including openers Pathum Nissanka for six and Kusal Mendis on 10.
All-rounder captain Wanindu Hasaranga top-scored for the hosts with 67 after promoting himself to number six, temporarily steadying a lacklustre innings in a 72-run partnership with Sadeera Samarawickrama.
Hasaranga took leg-spinner Qais Ahmad to task, smashing two sixes and two fours in his 22-run third over.
He made his second T20 half-century in just 24 deliveries with an elegant boundary through extra cover off Qais.
The partnership was broken in the next over when Samarawickrama chanced a single to covers but a direct hit from Ibrahim Zadran found him run out.
Hasaranga followed soon afterwards after a miscalculated drive to long-off, easily caught by Ibrahim Zadran off Naveen-ul-Haq .
Sri Lanka won the solitary Test of the tour and swept their ODI series against Afghanistan 3-0.
Dambulla hosts the remaining two T20 matches of the series on Monday and Wednesday.