US Open champion Sloane Stephens staged a magnificent comeback to defeat Victoria Azarenka and reach the Miami Open final for the first time.
American 13th seed Stephens beat the former world number one 3-6 6-2 6-1.
Belarusian Azarenka, now ranked 108th, took the first two games of the second set but Stephens won 10 games in a row to turn the tie around.
Meanwhile, Pablo Carreno Busta beat Kevin Anderson 6-4 5-7 7-6 (8-6) to progress to the men’s final.
Thursday’s last-four match was the second time world number 12 Stephens has defeated wildcard Azarenka this month, having won in straight sets in the second round at Indian Wells.
Three-time Miami Open winner Azarenka, 28, comfortably won the first set but hit four double faults in the second as the American started to dominate.
Stephens will play the winner of Friday’s semi-final between qualifier Danielle Collins – who defeated fellow American Venus Williams in the last eight – and French Open champion Jelena Ostapenko of Latvia.
“I knew I had to stay in it. Victoria is a great champion,” said Stephens, 25. “I kept battling and I got a little momentum going in the second set.
“Growing up in South Florida, this is so incredible to be in the final.
“I knew I had to focus on my side of the court and be solely focused on myself.”
Carreno Busta holds on
US Open finalist Anderson also looked to have completed a comeback on court but Carreno Busta rallied in the tie-break to book his place in the men’s final.
The Spaniard – seeded 16th – won 6-4 5-7 7-6 (8-6) in a thriller lasting two hours and 42 minutes.
Carreno Busta, 26, won on the third match point after 31-year-old South African Anderson – who hit 14 aces during the match – had held the previous two.
He will play either Juan Martin del Potro – who claimed his maiden Masters 1,000 title at Indian Wells earlier this month – or John Isner, who play their semi-final on Friday, in the final.