Hampshire took over at the top of Clydesdale Bank 40 Group B after recording a 107-run win over the Welsh Dragons in Cardiff.
Neil McKenzie hit 88 from 89 balls to help the Royals post a total of 226 all out at the Swalec Stadium after they had lost the toss and been put into bat.
They raced out to 27 without loss in four overs but were pegged back by Glamorgan taking two wickets - Jimmy Adams and Simon Katich the men to depart.
James Vince was run out by wicketkeeper Mark Wallace two runs short of his half-century, a dismissal which was initially given as stumped, leaving the score at 78-3.
Sean Ervine and Liam Dawson then fell in quick succession to Jim Allenby, but McKenzie kept Hampshire on course with a superb knock.
Danny Briggs struck Graham Wagg for two sixes in between losing McKenzie, who holed out off the expensive Simon Jones seven balls from the end of the innings.
The Dragons, who were penalised six runs for not bowling their overs in the time allotted, never got close in reply, mustering just 120 all out.
They were soon reduced to 21-3 in six overs by Chris Wood and the situation worsened when Marcus North perished to David Griffiths to make it 47-4.
It did not get better for the home side as Allenby was well caught by Vince on the long-on boundary off Briggs, leaving them 58-5 in the 18th over.
Wagg and Stewart Walters took the batting powerplay with Glamorgan needing 135 off the final 14 overs, before Briggs bowled Wagg, Ben Wright and John Glover.
Wood then returned to the attack to bowl Cosker and Jones with consecutive balls, the seamer finishing with impressive figures of 5-22.