Bowled out for 133, the Sri Lankans hit back to skittle the impatient Afghan batsmen for 65 in the Twenty20 match watched by a full house at the 2,500-capacity Yeonhui field in Incheon.
Leg-spinner Jeevan Mendis grabbed three wickets for 13 runs and Isuru Udana and Chaturanga de Silva chipped in with two wickets apiece as the Afghans folded up in 17.4 overs.
Eight batsmen failed to reach double figures for Afghanistan, who are set to make their debut in the 50-over World Cup in Australia and New Zealand next year.
Afghanistan have so far won five silvers -- including two in cricket -- and six bronzes since starting out in the inaugural Asiad in New Delhi in 1951.
The cricket silver was their second medal in the current Games after Roman Abasi's bronze in taekwando.
Sri Lanka, who elected to bat after winning the toss, rode on Dinesh Chandimal's 33 and skipper Lahiru Thirimanne's 57 off 37 balls to race to 79-1 in 10 overs.
Skipper Mohammad Nabi took four wickets for 18 runs in 19 deliveries of off-spin and seamer Gulbadin Naib claimed two for 20 to cause an unexpected collapse.
