US Open winner Sloane Stephens saw off three-time Miami Open winner Victoria Azarenka to book a place in the final in Florida.
The Belarusian former world No 1 was given a wildcard into the tournament and had already seen off Karolina Pliskova, Agnieszka Radwanska and Anastasija Sevastova en route to the last four.
Azarenka took the first set 6-3 in 46 minutes, after breaking Stephens twice for a 3-0 lead, but then being broken back twice for 3-3.
The 186th-ranked Azarenka broke the American twice more to seal the set.
Four double faults in the second brought Stephens back into contention as Azarenka lost three consecutive service games.
Stephens made short work of her opponent in the deciding set taking it 6-1.
Jelena Ostapenko will be her opponent after she beat qualifier Danielle Collins 7-6, 6-3.
Collins had already seen off Venus Williams in the quarter-finals but met her match against the Latvian, who was ruthless in the first set tie-break breaking her four times as Ostapenko took the first set.
The second was less of a dogfight - the world number five breaking Collins in the opening game and closing out the set on the first match point.