Somerset assured themselves of a spot in the semi-finals of the CB40 when they beat Surrey by 64 runs (D/L), with more than four overs to spare, at Taunton.

The hosts produced a powerful batting display in a rain-affected match that was reduced to 36 overs a side.

Having been put in, Somerset openers Marcus Trescothick and Craig Kieswetter raced on to 32 before Trescothick was out for eight, caught at mid wicket by Matthew Spriegel off Chris Tremlett from the final ball of the third over.

Kieswetter flayed 18 off the fifth over, a six and three consecutive fours, off Tremlett to take Somerset on to 55 and continued to plunder to bring up his half century with a cover drive off Jade Dernbach in the 11th over. His 50 came up off 29 balls and included seven fours and two sixes.

The 'keeper brought up the Somerset hundred in style, lofting leg spinner Chris Schofield over mid wicket in the 12th over.

During the partnership between Kieswetter and Zander de Bruyn the players left the field twice for heavy rain as a result of which the game was reduced to 36 over per side.

De Bruyn went to his own 50 in the 19th over and off the first ball of the next over he brought up the 150 with a straight drive off Schofield, who next ball exacted revenge by having him caught at mid wicket. Between them the third wicket pair had added 87 in 12 overs.

Kieswetter was next to perish with the total on 156, stumped by Steve Davies off Schofield for 79.

James Hildreth was joined by Jos Buttler, who continued his rich vein of one day form.

With an array of explosive and innovative shots, including a huge six over log on off Dernbach, Buttler raced to his 50, off just 31 balls.

The 19-year-old was on fire and hit successive sixes high over cover when Spriegel was introduced into the attack for the penultimate over. Next ball he was bowled for 87, which came off 46 balls and included nine fours and four sixes. Along with Hildreth, he had added 123 in 13.3 overs.

Somerset eventually reached 290 for six, Hildreth bowled for 38 by Tremlett off the last ball of the innings, having played his part in helping to add 105 off the last 10 overs.

Chasing a revised target of 292 for victory off 36 overs, Surrey lost their captain Rory Hamilton-Brown, caught by Pete Trego off Alfonso Thomas' third ball of the innings.

With the score on 23, Thomas also had a hand in the second wicket when he ran out Steve Davies in the fifth over.

Mark Ramprakash came in to join Stewart Walters and the pair took control of the situation and brought up the 50 in the ninth over.

Ramprakash was in fine form and hit the first six of the Surrey innings when he lofted Trego high over the mid-wicket boundary in the 13th over.

Walters had moved on to 45 when he was bowled by Murali Kartik in the 16th over with the score on 91. Kartik then accounted for Jason Roy in the same over, stumped by Kieswetter.

New batsman Spreigel brought up the hundred with an off driven boundary from Trego in the 17th and after 20 overs Surrey had moved on to 125 for four.

Ramprakash looked threatening and had moved onto 73 when he hoisted the first ball of the 26th over, bowled by Trego, high to deep extra cover where Buttler took the chance.

The England Lion struck again in the same over when he accounted for Schofield leg before wicket and going into the final 10 overs Surrey still needed 121 for victory.

When Thomas gratefully received a caught and bowled chance from new batsman Gareth Batty and Tremlett was run out the visitors chances looked even slimmer.

Spriegel and Dernbach added 44 for the ninth wicket before Dernbach was caught by Buttler for 31 and two balls later De Bruyn bowled Cheetham to wrap things up, Surrey all out for 227 in the 32nd over.