Surrey 145 for 6 (de Bruyn 41*) beat Hampshire 142 for 9 (Ervine 47, Mahmood 2-9) by four wickets
Hampshire captain Dimitri Mascarenhas admitted his side "just didn't turn up" after they were beaten by Surrey in the semi-final of the Friends Life t20 at Edgbaston.
Hampshire, the champions in 2010 and 2012, struggled to an under par total of 142 before Surrey reached their target with four wickets in hand and four balls to spare. But though Hampshire's bowlers donated nine wides, Mascarenhas put the blame for defeat squarely on the shoulders of his batsmen.
"Our batters just didn't bat well enough," he said. "We just didn't get enough runs. In T20, one mistake can kill you and we made a lot mistakes out there today. It's hard to defend 140 in a semi-final. 160 was about par, but we lost three wickets in the first six overs and that cost us."
The result saw Surrey, who last won the trophy in 2003, qualify for their first T20 final since 2004.
They made hard work of their modest chase, though. Despite little pressure from the run-rate, several of the batsmen picked out fielders in the deep - Glenn Maxwell, who found out long-off, and Jason Roy, who hit the ball straight to deep midwicket were particularly culpable - while Azhar Mahmood, turning like an oil tanker, was run-out having been sent back.
Eventually Zander de Bruyn, with a calm innings of 41 off 40 balls, and Zafar Ansari, with an intelligent innings of 21 from 12 balls, took Surrey over the line in an unbroken seventh-wicket stand of 33 in three overs. With 17 required from the final 11 balls, Ansari drove a straight six and then a straight four off the bowling of Chris Wood to all but seal the contest.
The architects of the Surrey victory were their bowlers, though. Mahmood bowled his four overs for the cost of only nine runs and, having opened the innings with a maiden, did not concede a run until his 12th delivery.
Hampshire, who did not score a run until the 10th ball of their innings, appeared rattled by the sluggish start and, in attempting to up the rate, lost three wickets in the first six overs to a variety of desperate strokes.
Jade Dernbach, who claimed wickets with the final two deliveries of the quarter-final against Somerset, took another with his first in this game - James Vince missing a drive - and struck another big blow at the end of his first over when Neil McKenzie attempted to swing him into the leg side and was adjudged, perhaps a little harshly, leg before. Only Sean Ervine, who made 47, flourished for any length of time.
"Our bowlers were outstanding," Surrey's stand-in captain Vikram Solanki said afterwards. "We put ourselves under pressure with the bat, but Ansari was brilliant."
George Dobell is a senior correspondent at ESPNcricinfo