Sloane Stephens overcame a tenacious Anastasija Sevastova at the US Open to reach the second grand slam semi-final of her career.
World number 83 Stephens, whose only previous appearance in the last four of a major came at the 2013 Australian Open, survived a fightback by the Latvian to triumph 6-3 3-6 7-6 (7-4) in front of a passionate home crowd at Arthur Ashe Stadium.
The American will now face compatriot Venus Williams or Petra Kvitova for a place in the final.
Stephens had a nightmare start, losing to love on her own serve, but she fought hard to find an immediate response and instantly restored parity.
That early setback seemed to spark Stephens into life and, following her second-game recovery, she opened up a 4-1 advantage.
At 5-2, Sevastova - who retired in 2013 due to injury before resuming her career - called on the trainer to treat an apparent thigh problem.
The Latvian held in the next but that merely delayed Stephens' inevitable march to the set, the American growing stronger with every game.
Sevastova looked to be moving freely as Stephens, who is still on the comeback trail from a foot injury sustained at last year's US Open, pushed her around the court early in the second set.
The world number 17 soon wrested control - a break of serve in the fourth game was enough to see her pull level - and the deciding set was a tense and unpredictable affair.
Sevastova struck first but two breaks from a determined Stephens, either side of another for the Latvian, set the match up for an enthralling finish.
Forced into a tie-break, the encounter continued to see-saw until Stephens fired over a backhand winner down the line to clinch the victory.
Stephens bt Sevastova  6-3 3-6 7-6 (7-4)
Stephens - 31/41
Sevastova - 25/39
Stephens - 0/2
Sevastova - 1/3
BREAK POINTS WON
Stephens - 4/9
Sevastova - 4/11
FIRST SERVE PERCENTAGE
Stephens - 72
Sevastova - 61
PERCENTAGE OF POINTS WON ON FIRST/SECOND SERVE
Stephens - 64/40
Sevastova - 73/38
Stephens - 103
Sevastova - 105