Jimmy Adams upstaged team-mate Kevin Pietersen's first appearance for Hampshire in two years as the Royals saw off Surrey Lions by 10 runs at the Rose Bowl.
Opener Adams batted throughout the Hampshire innings, finishing on 101 from 65 balls out of a total of 201-2.
He put on 29 with Michael Lumb (18) for the first wicket and then shared 28 with Pietersen, who made 15 from 10 deliveries before lifting a catch to long-off .
Pietersen, released for just one match by the ECB, hit three three fours in an over from Surrey pace bowler and former Hampshire colleague, Chris Tremlett (1-43), but then carelessly drove Chris Schofield (1-14) to Matt Spriegel.
Adams, who hit seven fours and four sixes, and Sean Ervine (54no) then shared an unbroken stand of 144 in the 12 overs for the third wicket.
Surrey made a promising start through opener Steven Davies, who hit two sixes in his 24, and their hopes were renewed when Mark Ramprakash and Andrew Symonds (26) were putting on 64 in seven overs for the fourth wicket.
Ramprakash was in dominant form as he hit his side's top score of 61 before pulling Australian pace bowler Dan Christian (2-37) to square leg, where Adams held a spectacular catch diving forward.
The former England batsman struck three sixes and six fours in his 41-ball innings but his dismissal at 139 signalled a rapid Surrey decline.
Left-arm pace bowler Chris Wood finished with figures of 3-30 and veteran Dominic Cork (2-27) took two wickets in an over, those of Younus Khan (19) and Spriegel (2), as Surrey finished short on 191-9.