Stephens, 19 years old and seeded 29th, ousted the third-seeded Williams 3-6, 7-5, 6-4 in nearly 2 1/2 hours. She'll go against world No. 1 and defending Australian Open champion Victoria Azarenka, who defeated unseeded Svetlana Kuznetsova 7-5, 6-1 in her quarterfinal Wednesday.
Williams won the first set Wednesday when she dropped just four points on serve. The match turned in the second set when Williams suffered back spasms and Stephens capitalized by getting three breaks, including a 12th-game break that evened the match.
Even slowed by injury Williams was able to go ahead 4-3 in the third set. But Stephens broke right back, held in a 12-point game and ended the match with a break when Williams hit a backhand into the net.
It was Stephens' fifth break of the match. Williams, who had lost just eight games in her four previous matches in Melbourne, had 48 unforced errors and finished off just four of 12 break-point chances.
Azarenka and Kuznetsova battled 77 minutes before an 11th-game break gave Azarenka the edge. The second set took just 30 minutes with Azarenka, after losing the second game on serve, won five straight games and gained her fifth semifinal spot in the last seven major tournaments.
The semifinals match against will mark the first time Azarenka will have played Stephens. Sharapova has an 8-4 edge over Li in their head-to-head meetings.