Jamie Overton and Ollie Pope set up the five-wicket success at the Kia Oval.
Overton’s 24 from 10 balls turned the game after Surrey looked to be struggling in reply to Middlesex’s 174 for seven, reached the required total with an over to spare.
Middlesex have now lost six of their seven group games, with Pope’s half-century coming off 25 balls.
Sol Budinger let the chance of a dramatic victory slip through his hands as Nottinghamshire tied with Derbyshire in a pulsating game at Derby.
Derbyshire needed five off the last ball from Calvin Harrison which skipper Matt Critchley drove to long on but Budinger dropped the catch and the ball squirted behind him for four to leave the teams level on 137 for nine.
Aaron Lilley and Callum Parkinson dealt a blow to Yorkshire’s hopes of topping the group as Leicestershire won by 34 runs.
Lilley hit 99 runs off 55 balls as the Foxes amassed 207 for three.
Gary Ballance and Harry Brook briefly threatened for the visitors but both fell in their 30s and no other batsman could pick up the pace as the Vikings were bowled out for 173.
Glenn Phillips scored an unbeaten 94 for the second successive game as Gloucestershire beat Sussex by 27 runs at Hove.
The New Zealand-born 24-year-old led the recovery from 35 for four to 162 for five against the previously unbeaten Sharks.
Tom Banton returned to form with vengeance to lead Somerset to a seven-run win over Hampshire at Taunton.
The hosts made 172 for nine after losing the toss, with Banton striking 77 from 37 deliveries and teenager Will Smeed contributing 63.
Hampshire replied with 165, Colin De Grandhomme hitting 66 and D’Arcy Short adding 37, but it was not enough for the visitors.
Brett D’Oliveira and Jake Libby powered Worcestershire to a first win in five matches with a record-breaking stand as they beat Durham by eight wickets.
The partnership was worth 145 in 15 overs and beat the previous record as the Rapids chased down the target of 179 with three balls remaining.
Ricardo Vasconcelos top-scored as Northamptonshire secured a second successive victory, overcoming Lancashire by seven wickets, although they remain bottom of the North Group.
He struck 41 from 38 to help his side chase down 131 with 10 balls to spare, before Mohammad Nabi and Rob Keogh completed Northamptonshire’s victory with an unbroken stand of 54 from 40 deliveries.