Batting first, Afghanistan set a modest target of 250.
Shah struck five boundaries during his 90-ball knock of 72 and added 50 for the second wicket with Ihsanullah Janat (45) after Afghanistan won the toss and opted to bat on a flat pitch.
Janat hit six boundaries in his 65-ball innings while his opening partner Mohammad Shahzad batted in his aggressive style, hitting a six and four boundaries in his 47-ball 34.
For Sri Lanka, who lost the opening match to Bangladesh by 137 runs in Dubai, seamer Thisara Perera took five for 55 and spinner Akila Dananjaya finished with two for 39.
In reply, Sri Lanka were all dismissed for 158. Rehman, Nabi and Rashid took two wickets apiece. Tharanga remained highest scorer for Sri Lanka with 36 runs.