Mark Wallace (69 not out) and David Lloyd (49) added 125 for the first wicket at Richmond.
Middlesex were rescued by fifties from Eoin Morgan and Ryan Higgins after a dreadful start, losing their first five wickets for 39 inside eight overs.
Shaun Tait, Timm van der Gugten and Michael Hogan all claimed two wickets.
The result - combined with Gloucestershire's three-run defeat by Kent - means the Welsh side rise above Gloucestershire in the table because of their superior run rate.
The Glamorgan seamers all bowled economically in the first half of the innings, with Craig Meschede conceding just 19 in his four overs.
But England limited-overs captain Morgan led the recovery with 58, and Higgins reached a career-best 57 not out.
It seemed to have given Middlesex a chance, but the Welsh openers soon got ahead of the run-rate.
Wallace, who returned to the team because of a back injury to Chris Cooke, equalled his career-best 69 not out before Colin Ingram finished the match with three consecutive sixes.
Glamorgan now face second-placed Gloucestershire in Cardiff on Sunday, 10 July, while Middlesex return to Championship action away to Somerset on the same day.
Glamorgan top-scorer Mark Wallace told BBC Wales Sport:
"I've really enjoyed the last couple of games, it's amazing how much you really miss it being out of the side and coming back was brilliant, thankfully I've got a few runs, but it's about a squad effort.
"You've got to get a round in when you get your highest score and technically I haven't got it so that's saved me a few quid with London prices - the way Colin Ingram came in and smacked it, he's unbelievable.
"It's a pleasure batting with David Lloyd at the moment, he's in unbelievable form and he was a bit unlucky not to get in the England A squad.
"Gloucestershire have played some good one-day cricket this season and last, when they won the one-day competition, but hopefully there'll be a big crowd in Cardiff for a local derby and we'll carry on our form."
Glamorgan climbed to the top of the T20 Blast south group after cruising to a crushing nine-wicket victory over Middlesex with 21 balls to spare.