Spain's Carla Suarez Navarro came back from a dreadful first set to defeat three-time Miami Open champion Venus Williams 0-6, 6-1, 7-5 at Key Biscayne on Tuesday and set up a semi-final clash with Germany's ninth seed Andrea Petkovic.
Petkovic booked her place in the last four after a 6-4, 6-2 win over 14th seeded Czech Karolina Pliskova.
Williams utterly dominated the first set, crushing the Spaniard 6-0 in less than half an hour but her opponent was able to regroup and battle back in impressive style.
Suddenly regaining her confidence Suarez Navarro won the first four games and went on to take the second set 6-1.
The third set bucked the trend for one-sided exchanges until Suarez Navarro broke to go 5-4 up only for Venus to break back straight away.
The Spaniard won the last two games however to continue an impressive season that has seen her reach two other semi-finals and make the last eight at Indian Wells for the first time.
"It was a crazy match, crazy first two sets. Venus was unbelievable at the beginning. I started a bit nervous but even if you lose the first set you are still in the competition and I am happy with the way I came back," said Suarez Navarro.
Williams said she had struggled to find consistency.
"I just made a little too many errors and I was going for it the whole match. Towards the end just never found the happy medium between being aggressive and putting the ball in the court," she said.
Petkovic made a blistering start, going up 4-1 in the first set but the 23-year-old Pliskova powered her way back to 4-4 and then had three break points, all of which were saved.
Petkovic, the 2011 Miami semi-finalist, won the next five games and wrapped up the match in one hour, 16 minutes.
"I was playing really well at the start but I couldn't see the ball on my serve with the sun on one side and I was struggling," said Petkovic.
"Karolina also started playing really well and I was a little lucky at the end of the first set. But then I got better and better from there," she said.
Wednesday's quarter-finals see top seed Serena Williams take on Germany's Sabine Lisicki while third-seed Romanian Simona Halep faces American Sloane Stephens.
The doosra: A high five for champions Australia
Miami Open: Djokovic survives scare; Murray claims 500th win
'India need a bigger pool of genuine fast bowlers to choose from'
World champions get back to business... name Ahmed, Voges in Ashes squad
Saina to celebrate No 1 status with ice cream and milk shake