Unseeded Thiemo De Bakker of the Netherlands beat top-seeded Berdych 7-5, 7-5, while second-seeded Almagro was defeated by Spanish compatriot Fernando Verdasco 6-4, 4-6, 7-5.
Berdych and Almagro were playing their second matches of the clay-court tournament after receiving first-round byes.
In the third quarterfinal upset, fifth-seeded Grigor Dimitrov of Bulgaria defeated third-seeded Juan Monaco of Argentina 6-3, 6-2.
Carlos Berlocq of Argentina beat Albert Ramos of Spain 6-3, 6-4 to set up a semifinal against De Bakker.
Verdasco will face Dimitrov in Saturday's other semi.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO Sports and on Facebook at AhramOnlineSports)