Sloane Stephens reached a maiden grand slam final with a surprise win over Venus Williams at the US Open on Thursday.
Stephens came through a rollercoaster all-American semi-final 6-1 0-6 7-5 against the ninth-seeded Williams on Arthur Ashe Stadium.
The world number 83, playing her second major semi but first since 2013, took her chances and delivered in huge moments during a thrilling final set.
Stephens, the 24-year-old who was ranked 957th in the world at the end of July, will face another American - either Madison Keys or Coco Vandeweghe - in the decider.
For Williams, the defeat completed a tremendous year at grand slams, the 37-year-old seven-time major winner having been runner-up at the Australian Open and Wimbledon.
Williams struggled in the opening set against Stephens, her 17 unforced errors proving costly.
Her mistakes gifted Stephens breaks of serve in the fourth and sixth games as the 24-year-old raced through the set in 24 minutes.
Williams' level lifted as she stormed through the second set, her power helping her level the match.
But the momentum continued to swing, Stephens breaking in the opening game of the third set when Williams was unable to dig a volley out from her feet.
Finally, both players were near their best at the same time in the third set, Stephens holding firm after several long points to take a 2-0 lead.
Williams responded once more, winning three consecutive games, only to put a volley into the net to give Stephens a break for 4-3.
But Williams broke straight back, and then produced a gritty hold in the ninth game before Stephens held for 5-5, the 10th game highlighted by a remarkable rally ended by a backhand winner down the line by Stephens.
Stephens broke to love to set up a chance to serve for the match, and she made no mistake in sealing her win.
Stephens bt Williams  6-1 0-6 7-5
Stephens - 17/27
Williams - 28/51
Stephens - 2/2
Williams - 3/6
BREAK POINTS WON
Stephens - 5/12
Williams - 5/14
FIRST SERVE PERCENTAGE
Stephens - 64
Williams - 64
PERCENTAGE OF POINTS WON ON FIRST/SECOND SERVE
Stephens - 56/55
Williams - 63/34
Stephens - 90
Williams - 84