Kent posted 155 for four thanks to half-centuries from Darren Stevens, who hit an unbeaten 56 off 38 balls, and Fabian Cowdrey, who anchored the Spitfires’ innings with 55 in 45 deliveries.
But the outcome was never in doubt after Roy and Tillakaratne Dilshan, with 46, had exploded out of the blocks in an opening stand of 118 in 12.2 overs.
As was the case in their previous match, against Hampshire, Kevin Pietersen and skipper Gary Wilson saw Surrey home, sealing victory with 13 balls to spare.
Roy made his intentions known by launching the very first delivery of the Surrey innings over long-off for six before sweeping Adam Riley for four two balls later.
The next over second saw Dilshan lever Mitch Claydon high to fine-leg and then to third man for successive boundaries.
Roy brought the 50-run partnership up with the second of three fours in four balls from Stevens, which was followed up immediately with a huge six over long-off to make it 62 without loss after five overs.
Roy was dropped on 48, when Adam Ball put down a caught-and-bowled chance, though not before the batsman had reverse swept and straight driven him for four. He then eased the next delivery down to long-leg to bring up a 25-ball half-century.
Roy launched Riley over long-on for a maximum, but the 21-year-old off-spinner had his revenge when the opener picked out the man at deep backward square-leg in the 13th over.
There was to be no respite for Riley, with Pietersen lifting him over long-off for a maximum later in the same over, on his way to 16 not out from 13 balls.
Dilshan departed with his side just 14 runs short of victory, chipping Cowdrey to short extra-cover, but Pietersen and Wilson knocked off the remaining runs required.
Kent’s innings got off to a bad start when Daniel Bell-Drummond was bowled around his legs by Dilshan.
Two overs later, Robin Peterson had Sam Northeast caught at long-off by Roy, who calmly flicked the ball up, before overbalancing, and then stepped back on to the field of play to claim the catch.
Cowdrey added 46 in tandem with Alex Blake before forging a profitable 62-run alliance in 7.4 overs with Stevens.
Blake lifted Dilshan over extra cover for a maximum, and Cowdrey slog-swept Azhar Mahmood for four before hitting Tom Curran for three boundaries in an over.
At the end of the powerplay, Kent were 46 for two. But Blake, swatting across the line at Gareth Batty, was bowled for 15.
In the 14th over, Stevens lifted Zafar Ansari for a huge six over long-on before cutting the 22-year-old forcibly for four.
Cowdrey then moved to 40-ball half-century, which he celebrated by scooping Kevin O’Brien high to the rope at fine-leg.
After Cowdrey was run out by Wilson, the Surrey wicketkeeper whipping off the bails after an appeal for lbw by Peterson was turned down, Stevens slog-swept Dilshan for six before bringing up his fifty in 31 deliveries.
Afterwards, Surrey skipper Wilson said: “If there’s a better player than Jason Roy in England at the minute, I've not seen him.
“He’s been absolutely outstanding in all forms of cricket, but especially against the white ball he’s been unbelievable this season.”
Kent’s acting captain Stevens added: “I thought we were probably 20 runs shy. But, the way Jason Roy played there, I don’t think there are many scores you could defend with somebody getting off to a start like that.”