The Miami Open women's final will pit two reigning Grand Slam champions after Sloane Stephens and Jelena Ostapenko won their respective semi-finals in Florida on Thursday.
US Open champion Stephens again ended former world number one Victoria Azarenka's hopes of a fairytale comeback by beating her 3-6, 6-2, 6-1 in an afternoon encounter.
French Open champion Ostapenko beat unseeded American Danielle Collins in the nightcap, staving off a set point en route to a 7-6(1), 6-3 triumph.
American 13th seed Stephens has five career titles, while sixth seed Ostapenko has two heading into Saturday's final.
"I'm feeling amazing now," said Latvian Ostapenko, who wore down Collins with a series of powerful groundstrokes.
She hit 33 winners and ended the match in style with a running forehand winner down the line.
"I was fine until the end," Ostapenko said. "I was just trying to play my game and I'm really happy with the way I finished."
She said she had been working this year on her mental approach.
"Now I'm trying to be calm and I think it's helping."
Three-times champion Azarenka, playing as a wildcard in her second event after an eight-month absence because of a custody dispute involving her son, showed glimpses of the form that took her to the top of the rankings but ultimately ran out of gas against her 13th-seeded opponent.
Stephens, who also beat Azarenka in the second round at Indian Wells this month, took control of the match early in the second set and never looked back as she raced through the decider with ease.
Zverev beats Coric, Carreno Busta outlasts Anderson
Fourth seed Alexander Zverev overcame a slow start on Thursday to wear down Borna Coric 6-4, 6-4 and set up a Miami Open semi-final against Pablo Carreno Busta, who earlier defeated Kevin Anderson.
After a power failure delayed the start of the match by more than an hour, Zverev faced two break points in the second game but then settled down and took command.
One break in each set was enough for the German to clinch his first win in three career attempts against the Croat.
Zverev advances to a Friday semi-final against Spanish 16th seed Carreno Busta, who survived a match point to upset South African sixth seed Anderson 6-4, 5-7, 7-6(6).
The other semi-final pits Argentine fifth seed Juan Martin del Potro against American 14th seed John Isner.
Zverev did not use the power failure as an excuse for his slow start.
"I didn't particularly care," he said, adding that he spent the time watching an NBA game on a locker room television.
"I think I lost the first six points of the match. It wasn’t the best start. I’m just happy to get through."
For Carreno Busta, who arrived on court in fine form having dropped only 12 games over his previous tee matches, the win was his first in five meetings against Anderson and avenged his fourth-round Indian Wells loss to the world number eight.
"It was an amazing match, no?" Carreno Busta said.
"He played some unbelievable points, passing shots.
"I lost to him, 7-6 in the third set (at Indian Wells). And today, well, at the beginning of the match I started playing really good, returning good, serving good, being very aggressive."
Anderson saved a pair of match points in the second set and shifted momentum in his favour but Carreno Busta, seeded 16th at Crandon Park, regrouped in the decider where the two players stayed on serve until the tiebreak.
Carreno Busta was staring at defeat when 6-5 down in the tiebreak but was let off the hook when Anderson missed with a forehand.
From there the South African pushed a backhand volley wide and then mishit a second serve that handed the win to Carreno Busta after two hours, 42 minutes.
Anderson, whose year already includes an ATP Tour title at the New York Open and runner-up finishes in Acapulco and Pune, has now lost all 10 of his quarter-final matches at the Masters 1000 level - the highest-tiered tournaments after the four Grand Slams.