World number one Simona Halep lost her first match at the Madrid Open in three years as sixth seed Karolina Pliskova continued her fine form.
Romania's Halep, who won the 2016 and 2017 titles, suffered her first defeat in 15 matches in the Spanish capital.
Pliskova produced a stellar performance to win 6-4 6-3, extending her winning run on clay to nine matches.
Halep will still be among the favourites later this month at the French Open, but 26 unforced errors marked her error-strewn display.
That should take nothing away from Pliskova, whose demon serve and blistering power can take the racket from the hand of any opponent.
The Czech's latest victory also had a family flavour, given that Halep had knocked out Pliskova's twin sister Kristyna in the previous round.
A driving forehand down the line clinched the decisive break midway through the first set.
There were two more breaks in the second set, the latter confirming Pliskova's comfortable victory as a weary Halep backhand hit the net.
After beating Jelena Ostapenko, Anett Kontaveit and Coco Vandeweghe on her way to winning the Stuttgart title a fortnight ago, Pliskova, the sixth seed, is now the highest ranked player left in the draw.
The Czech will face two-time Wimbledon champion and compatriot Petra Kvitova in the semi-final.
Kvitova eased past Russia's Daria Kasatkina in the last eight, winning 6-4 6-0.
French seventh seed Caroline Garcia also reached the last four with a 6-2 6-3 win over Spain's Carla Suarez Navarro.
But five-time Grand Slam champion Maria Sharapova missed out on what would have been only her second semi-final this year as the Netherlands' Kiki Bertens came from behind to win their quarter-final 4-6 6-2 6-3.