Blockx's run had been overshadowed by the exploits of Spanish teenager Rafael Jodar, but the 21-year-old took centre stage on Thursday, defeating Norwegian ace Ruud 6-4 6-4.
"To be honest, I'm just happy with being here," said Blockx, who has also upset Felix Auger-Aliassime and Francisco Cerundolo.
"Even winning my first match here. I barely escaped in the first round, and I was happy about that already. Semi-finals is something I wouldn't have even dreamed of to begin with."
Blockx has now gone one step further than Jodar, who lost to Jannik Sinner in the last-eight on Wednesday, and he will join the Spaniard in breaking into the top 40 on Monday.
"I'm proud of how I've played these past couple of matches," Blockx said. "The conditions suit me well here. I feel like it's clay which is slow, so I have time to settle and hit my shots, go for my shots.
"At the same time, it's quite fast with the altitude and the heat sometimes. It's the perfect combination for me."
Blockx is now 4-2 against top-20 opponents, with all four of his wins coming this month.
"I thought from the first game I was hitting my ball quite well, and I made lots of returns," he said. "Once I got my first game, I was really into the match."
With the loss, Ruud will leave the top-20 for the first time since May 2021.
Alexander Zverev will be the next up to tackle Blockx, with the German having looked pretty imperious in his comprehensive 6-1 6-4 victory over Italy's Flavio Cobolli.
Meanwhile, Carlos Alcaraz was at the Caja Magica on Thursday to support his 14-year-old brother Jaime, who is playing in the under-16 tournament.
Alcaraz was sporting a cast on the right wrist injury that has ruled him out of the clay-court season but was able to celebrate a family victory, with Jaime beating Pol Mas 6-3 6-3.