Two days after losing their previous practice match to Australia, the hosts banked a morale-boosting nine-wicket win ahead of Thursday's curtain-raiser, Roy clubbing 89 not out.
Afghanistan were dismissed for just 160, Jofra Archer leading the way with three wickets and Joe Root matching that haul with his part-time spin. The chase was conducted with brutal disdain by Roy, smashing 11 fours and four sixes in his 46-ball stay.
The Surrey man finished it in the 18th over with a maximum beyond mid-wicket, leaving 195 deliveries unused.
There was more good news from England's medical department too, with paceman Mark Wood cleared for action against South Africa after an all-clear from scans on his left ankle.
Captain Eoin Morgan was also back from his fractured finger, but opted not to field and was not needed with the bat.
Faced with a paltry chase on a docile wicket, England's opening pair were never likely to take a timid approach.
Roy confirmed as much when he chopped the first ball for four and Jonny Bairstow needed no invitation to follow suit, cracking Dawlat Zadran for back-to-back boundaries.
After leaking 32 from three overs Afghanistan sent an SOS to star man Rashid Khan but even an over of his tricky leg-spin failed to slow the charge. Roy pierced the infield to take four from his loosener and Rashid departed again after five more runs from his next five balls.
Roy was badly dropped by Dawlat on 20 and it proved a painful error, England cashing in with 30 runs in two overs. Bairstow's fun stopped on 39 when Mohammad Nabi beat him on the outside edge and his trailing boot lifted just long enough for Rahmat Shah to make a smart stumping.
Root played anchor for 29 not out as Roy continued swinging the bat, a turbo-charged ramp shot off Gulbadin Naib and a slog-sweep against Rashid both soaring for six before the early finish.
Archer had earlier kickstarted the collapse with a brisk new-ball spell, drawing a top edge from Hazratullah before Rahmat was cramped for room and spoon-fed a catch to mid-on. Having not been named in England's preliminary World Cup squad, it increasingly appears impossible that the 24-year-old will not take the new ball in the opening fixture.
Opener Noor Ali offered some resistance, scrapping to 30 before playing Ben Stokes into his off stump attempting an uncertain stroke.
With Hashmatullah chewing up dot balls at one end, former captain Asghar Afghan decided the introduction of Root's occasional spin could not go unpunished. After missing out on a full toss, Asghar tried to launch his second ball over the ropes but instead picked out Roy in the deep.
The next four wickets tumbled in the space of just seven deliveries, Hashmatullah and Najibullah Zadran carelessly run out, Gulbadin holing out to Moeen Ali and Rashid guided Root to slip for a golden duck. It was a calamitous period for the Afghans, who were shaping to use up little more than half their allotted overs.
Nabi spared them from the worst projections, striking three sixes and inflating the total by 68 alongside the last two batsmen.
Aftab Alam gave Root a third success of the day and Nabi was last man out when a meaty thick edge off the returning Archer sailed to Bairstow at third man.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies