Le natif d'Anvers a battu un troisième membre du top 20 dans la capitale espagnole, après l'Argentin Francisco Cerundolo (20e), le Canadien Felix Auger-Aliassime (5e) et donc Ruud (15e).
Il affrontera dans le dernier carré le vainqueur du match entre Flavio Cobolli (13e) et Alexander Zverev (3e).
"Je ne sais pas quoi dire, je suis juste content, a lâché Blockx au micro de l'organisateur. Quand j'ai gagné mon premier match ici j'étais déjà super content, mais la demi-finale, je n'en avais même pas rêvé. Les conditions me conviennent bien ici, c'est de la terre, c'est un peu lent et ça me permet de bien me placer pour jouer mes coups".
Les deux sets ont été assez différents. Ruud, 27 ans, a mis longtemps à entrer dans la partie. Le triple finaliste en Grand Chelem a notamment multiplié les fautes en coup droit en début de partie (23 dans la première manche, dont 11 non forcées).
La deuxième manche a été plus disputée.
La partie a tourné à 3-3 dans la deuxième manche, lorsque le Belge a converti une troisième balle de break pour prendre une avance définitive. Il s'est d'abord procuré deux balles de matches à 5-3 sur le service de Ruud, mais le Norvégien a réussi à les sauver toutes les deux.
Au service, l'ex-n°1 mondial junior n'a pas tremblé. Menant 40-0, il a plié le match à sa deuxième balle.
Finaliste l'an dernier des finales Next Gen réunissant les meilleurs jeunes de moins de 22 ans, Blockx a fait ses débuts dans un tournoi du Grand Chelem cette année en Australie et n'est entré dans le Top 100 qu'en mars.
