Middlesex 185 for 5 (Simpson 53, Morgan 48, Franklin 41) beat Surrey 142 for 9 (Dexter 3-12, Finn 3-17) by 43 runs
Surrey's late charge for the quarter-finals of the NatWest T20 Blast stalled at Lord's as they lost to Middlesex by 43 runs.
Surrey had gone into the game with four wins out of their last five at a venue where they had won on their previous six visits.
But chasing 186 in front of a crowd of 26,000, they never recovered from losing four wickets for 33 during the six-over Powerplay.
Kumar Sangakkara top-scored with 32 but Surrey now need to beat Sussex at The Oval on Friday to have any chance of qualifying as they will be relying on results elsewhere.
Steven Finn picked up the key wicket of Jason Roy in the first over when the England one-day player mistimed a pull to short fine leg. Finn also had Ben Foakes held at mid-off for six and was well backed up at the other end by Mitchell McClenaghan.
The New Zealander removed Steven Davies and then bowled well outside off stump and tempted Rory Burns to drive to wide mid-off.
Sangakkara was Surrey's only remaining hope and the Sri Lankan seemed to be getting into his stride when he struck off-spinner Ollie Rayner for six.
But when he holed out to long-on off Neil Dexter for 32 in the 11th over and Rayner took a tumbling catch in his follow through to remove the dangerous Azhar Mahmood there was no way back for Surrey.
Finn finished with 3 for 17 while Dexter's mix of cutters and slower balls proved highly effective on a slow pitch as he took 3 for 12.
Middlesex's total of 185 for 5 was built around a third half-century in this season's Blast for John Simpson, who top-scored with 53, and a punishing fourth wicket stand of 77 from 39 balls between Eoin Morgan and James Franklin, who plundered 40 off the 18th and 19th overs.
Nick Gubbins dragged a ball onto his stumps from Jade Dernbach in the fifth over but Simpson and Dawid Malan regrouped by adding 73 from 53 balls for the second wicket.
Simpson swatted the first of six sixes in the innings over mid-wicket in Dernbach's first over and then belted three fours in a row off Sam Curran as Middlesex took 57 during the Powerplay.
Zafar Ansari broke the stand when Malan failed to clear the longest boundary at long-off and Middlesex were 97 for 3 when Simpson was held at deep midwicket off Sam Curran for 53 from 43 balls with seven fours and a six.
However, Middlesex maintained the momentum in the second half of their innings as Morgan and Franklin played with increasing freedom.
Franklin hit four successive boundaries off Sam Curran in the 18th over before Morgan cut loose in the next, striking two sixes off Dernbach through midwicket before Franklin belted two more boundaries.
The veteran Mahmood picked up both in the final over as Morgan drove to long off and Franklin was caught at deep midwicket.