Surrey, after choosing to bat first, reached 139 for six and Hampshire paced their reply perfectly to win with four balls to spare. Carberry faced only 45 deliveries, hitting eight fours and a six off debut-making pace bowler Matthew Dunn, leaving Hampshire firmly in control when he was out at 98 in the 14th over, leg before to Zander de Bruyn.
Neil McKenzie, captain in the injury absence of Dimitri Mascarenhas, carried on where Carberry left with an unbeaten 37, seeing Hampshire home after the loss of two late wickets.
When Surrey batted, Rory Burns led a sound start in which 71 came off the first 10 overs, but they were unable to accelerate over the second half of their innings, making only a further 68.
The turning point came in the ninth over when left-arm spinner Danny Briggs, released by England's t20 squad, dismissed Vikram Solanki and Rory Burns in four balls.
Former Hampshire all-rounder Glenn Maxwell, normally a big-hitter, made 15 without a boundary as Surrey were unable to step up a gear when it mattered, strangled by some tight Hampshire bowling.
Gary Wilson laboured 25 balls overs his 29 and Zafar Ansari was similarly restrained in his 25 not out.
De Bruyn's little-used medium pace gave Surrey hope when Hampshire raced towards their modest target, dismissing Carberry with his first delivery and then coming back in the later stages to get rid of Sean Ervine and Liam Dawson.
But Hampshire were always in control and Adam Wheater scored the winning runs in the last over, hoisting ex-Hampshire fast bowler Chris Tremlett for six to the delight of the majority of the 6,000 crowd.