US Open champion Sloane Stephens again ended former world No.1 Victoria Azarenka's hopes of a fairytale comeback by beating her 3-6 6-2 6-1 to reach the Miami Open final.
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.
"I just knew I had to keep fighting. In the first set I was down but I battled back so I knew if I did that in the second, I'd be right in there," the 25-year-old American said.
"I ended up winning a lot of games in a row and I just tried to keep the momentum going."
Stephens will face either French Open champion Jelena Ostapenko, the sixth seed, or American qualifier Danielle Collins in Saturday's final at Crandon Park.
Azarenka's initial comeback after the birth of her child in December, 2016 was short-lived as she played two tournaments before a custody battle with her son's father prevented her from travelling with her child.
The Belarusian may have played little competitive tennis in recent years but she enjoyed a respectable run in Miami, including victory over Czech world number six Karolina Pliskova in the quarter-finals.