Moya, seeded No. 1 at this clay-court tournament, trailed 1-4 in the deciding set before pulling out a 6-3, 3-6, 7-5 win.
Second-seeded Nicolas Almagro advanced with a 7-5, 2-6, 6-1 decision over No. 5 seed Filippo Volandri.
Almagro's semifinal opponent will be Fabio Fognini, who survived against Ivo Minar 6-7 (2-7), 6-3, 6-3. This will be Fognini's first semifinal appearance at an ATP event.