A target of 161 was never likely to test England, with Roy proving as much in a 46-ball innings that included 11 fours and four sixes.
The only wicket Afghanistan took was Jonny Bairstow, stumped by Rahmat Shah off Mohammad Nabi for 39.
Roy ended the match in the 18th over of England's reply with a six over midwicket.
Earlier, Jofra Archer and Joe Root took three wickets apiece as Afghanistan slumped to 160 all out.
Archer struck twice with the new ball to dismiss Hazratullah and Rahmat before ending some late resistance from Nabi.
Opener Noor Ali scrapped his way to 30 before he played on to all-rounder Ben Stokes.
Hashmatullah could not get going and that prompted Asghar Afghan to attack the occasional off-spin of Test captain Root.
But, having missed out on a first-ball full toss, Asghar tried to drive Root over the top but found Roy in the deep instead.
Afghanistan lost their next four wickets in a mere seven deliveries, Hashmatullah and Najibullah Zadran carelessly run out, Gulbadin Naib holing out to Moeen Ali and Rashid Khan steering Root to slip for a golden duck.
Afghanistan were in danger of being dismissed for under 100 before Nabi, with 44, helped the last two wickets add 68 runs.
Nabi's defiant hitting, which included three sixes, kept England at bay before he was last man out when a thick edge off Archer carried to Bairstow on the boundary.