Serena Williams brushed aside second-seeded Maria Sharapova 6-1, 6-3 to advance to the semifinals along with top-ranked Victoria Azarenka.
Williams opened strongly, serving six aces and earning two early breaks to take the first set.
Sharapova finally showed some fight and broke to love to level at 2-2 in the second set, but she quickly squandered her break with a costly sixth double fault to fall behind and ultimately lose to Williams for the seventh straight match.
"Playing Maria you have to be really ready because she does everything really well," said Williams. "I felt relaxed out there, and when I play relaxed I play better."
Williams, who improved to 11-0 on clay this year, will face Lucie Hradecka after the Czech upset U.S. Open champion Sam Stosur 7-6 (8), 7-6 (6).
Azarenka overcame a shaky start to beat French Open winner Li Na 3-6, 6-3, 6-3.
Azarenka struggled initially with her serve but broke her Chinese opponent's first two service games of the second set en route to levelling the match.
Azarenka, who has won four titles this season and was last year's runner-up in Madrid, used her powerful groundstrokes to jump out to a 4-0 lead in the decider before holding off Li's late charge.
"She was pretty unbelievable in the first set," said Azarenka. "I had to turn something around. I don't know if it was confidence or if it was self belief or just pushing myself to be better and really wanting to win the match."
Azarenka said she agreed with Nadal and Djokovic in their criticism of court's surface.
"You feel unstable sometimes. Actually, a lot of times," she said. "But right now there is no point on talking about it. After the tournament all the players can get together and discuss it."
The Belarusian will next face fourth-seeded Agnieszka Radwanska, who beat Varvara Lepchenko 6-4, 6-4.