Somerset and Lancashire earned home quarter-finals with contrasting wins on the final evening of the group stages.
Somerset made 218-8 in a 47-run victory over Surrey, with 98 from Will Smeed, to move above Essex into second.
Lancashire edged North Group winners Birmingham Bears by two wickets at Old Trafford to pip Derbyshire, who beat Durham with Wayne Madsen’s 100 not out.
There were also wins for Notts Outlaws, Leicestershire Foxes, Gloucestershire, Hampshire Hawks and Glamorgan.
In the quarter-finals, South Group winners Surrey will host Yorkshire at The Oval on Wednesday, before Hampshire head to Edgbaston to play Birmingham the following day (both 18:30 BST).
Lancashire Lightning will entertain Essex Eagles on Friday (BST 18:30 BST) and Somerset will host Derbyshire Falcons on Saturday (BST 19:00). Finals Day takes place at Edgbaston on Saturday, 16 July.
Birmingham have racked up 200 or more seven times this season, but their usually explosive top order was restricted to 39-3 in the powerplay as Lancashire left-arm spinner Tom Hartley (2-32) removed Sam Hain (9) and Paul Stirling (12) in the space of three balls.
Adam Hose (50) anchored the Bears innings through stands of 63 with Chris Benjamin (35) and 59 with Dan Mousley, who hit a rapid 41 off 20 balls, as Bears recovered to set Lancashire 169 to win.
Olly Stone (4-21) removed Keaton Kennings and Steven Croft in three balls as the hosts slipped to 18-2 and then returned to dismiss Dane Vilas (42) and end a 67-run stand with Phil Salt (33).
Needing 13 off the final over with three wickets in hand, Tom Hartley hit Henry Brookes’ first ball for six, and Richard Gleeson edged a no-ball to the boundary to seal a thrilling win with three balls to spare.
Derbyshire have only reached Finals Day once since domestic T20 cricket was introduced in 2003, but already had a place in the last eight secure as they opted to field first against Durham.
Michael Jones set Durham on their way with 42 off 22 balls, while Ollie Robinson hit three sixes in his 43 off 27 as the visitors posted 193-5, with spinner Mattie McKiernan claiming 3-29.
The Falcons lost Luis Reece to the second ball of their reply, but Madsen and Shan Masood (31) put on 97 in nine overs and the former then added 61 in 5.3, with Hylton Cartwright (38).
Madsen reached the first T20 century of his career in the final over as the Falcons clinched a five-wicket win.
Leicestershire’s game with Yorkshire was supposed to be winner-takes-all for the final place in the last eight – but the loss of two points earlier in the day for disciplinary rule breaches cost the Foxes their chance.
Nick Welch hit 46 and Colin Ackermann made an unbeaten 72 off 46 balls, with nine fours, as they posted a total of 211-7.
Adam Lyth raced to 52 off 25 balls for the Vikings, but from 81-1, their innings tailed off and they could only muster 151-9, with young spinner Reham Ahmed taking 3-17, in a 60-run defeat.
At New Road, Jake Ball took 4-25 as Notts Outlaws restricted Worcestershire Rapids to 159-8 despite Ed Barnard’s 38 off 23 balls.
Ben Duckett was in the runs again, hitting a six and seven fours in his 62 not out off 44 balls as the visitors won by five wickets with eight balls remaining.
Notts finished fifth, with the same number of points as Yorkshire, but an inferior net run rate meant they failed to reach the knockout stages for the first time in seven seasons.
At Taunton, Smeed raced to 50 off 29 balls against Surrey, while Somerset skipper Tom Abell (70) reached his half-century two balls quicker, plundering 19 runs from one Cameron Steel over.
The pair smashed 165 off just 75 balls before Reece Topley removed them both in the 17th over, Smeed caught on the boundary two short of his first T20 Blast ton.
Somerset had exceeded their previous highest score of the campaign of 194 by then, but three wickets from Chris Jordan in the final over limited the damage to 211-8.
Craig Overton (4-25) opened the Surrey innings by removing Will Jacks and Tom Curran in a rare double-wicket maiden, and then removed Jamie Smith in his next as they slumped to 11-3.
Jordan raced to a 22-ball fifty, but received little in support and when he fell to Peter Siddle (2-22) for 73, off 35 balls, Surrey lost their final four wickets for 13 to be bowled out for 171.
Hampshire Hawks captain James Vince, the competition’s leading scorer, went past 600 runs with 65 off 42 balls as they beat Sussex Sharks by five wickets at Hove.
Sussex lost both openers with only 11 on the board but posted 180-8 after George Garton raced to 37 off 17 balls.
Vince and Ben McDermott (30) shared an opening stand of 86 and the Hawks – who go through in fourth place – shrugged off a slump from 124-1 to 144-5 to reach 181-5 with five balls in hand.
Kent’s defence of the title they won by beating Somerset last summer ended in further disappointment as they lost to Glamorgan by 35 runs at Canterbury.
Dan Douthwaite hit 51 not out off 23 balls as the Welsh county made 190-5 and the Spitfires slumped to 17-3 at the start of their reply before being bowled out for 155 in the 18th over, their 11th defeat in 14 group games.
Middlesex opener Stevie Eskinazi earlier carried his bat for 65 not out off 55 balls but they lost by five wickets to Gloucestershire in Bristol.
The visitors made 163-4, but 52 off 39 balls by Glenn Phillips and an unbeaten 33 by skipper Jack Taylor saw Gloucestershire to 164-5 off the penultimate ball of the match.