Hampshire 155 for 2 (Vince 66*, Donald 51) beat Middlesex 153 for 5 (de Villiers 52*) by eight wickets
Aneurin Donald thrashed his first Vitality Blast fifty for Hampshire to keep their quarter-final hopes alive by beating Middlesex by eight wickets.
Donald, who joined from Glamorgan last year, had previously scored 48 and 44 in the Blast but finally reached the landmark score to club 51 off 33 balls. He put on 96 with captain James Vince - who clocked up his fourth fifty of this season's Blast, ending on 66 not out, to take Hampshire past the winning post with nine balls to spare.
Hampshire's win, which came despite South African legend AB de Villiers' fourth fifty of the Blast, sees them leap up to 13 points, level with Middlesex ahead of both sides' must-win final group fixtures on Friday night.
Donald tore into the Middlesex attack from his fourth ball faced, which sailed over the fine leg ropes after a wayward delivery from Tom Helm. The Welshman used his brute power to hit two boundaries over the covers before relying on his technique to cut Mohammad Hafeez.
At the other end, Vince manipulated the ball and ran hard, although he couldn't resist an immaculate back-foot cover drive as the opening partnership rushed pass 50.
Donald was given a piece of luck when he was dropped by deep midwicket Nathan Sowter on 47, before a deft glance took him to his milestone in 31 balls. The 22-year-old fell to the next ball he faced as he reversed to short third man to end a 96-run stand for the first wicket - Hampshire's highest of the Blast.
Sam Northeast arrived at the crease and was dropped on 12 before he was bowled by Steven Finn, but Vince passed his half-century in 43 balls and saw Hampshire over the line.
Earlier, Middlesex won the toss, decided to bat and reached a par 153 for 5 thanks to de Villiers' hitting and a series of starts.
Paul Sterling and captain Dawid Malan put on 47 for the first wicket in a little over five overs, both striking the ball cleanly. But they departed in successive overs, the former clothing to mid-off and the latter caught on the square leg boundary after the returning Mason Crane had frustrated him with four dot balls.
Leg spinner Crane, who missed six games with a side strain, was the pick of the Hampshire bowlers and added Hafeez to his tally, lbw to end with 2 for 22.
Eoin Morgan was leg before to Tabraiz Shamsi and John Simpson was caught at mid-on to give Kyle Abbott his 150th T20 wicket before de Villiers accelerated Middlesex to a decent score.
De Villiers had been tempered to reach 28 off 25 balls but back-to-back sixes over the leg side off Shamsi saw him hit his gears and a four from the final ball of the innings handed him a 34-ball half-century - the 57th of his career.