Alize Cornet beat Serena Williams 6-4, 6-4 on Friday to deny an all-Williams final at the WTA Dubai Tennis Championships.
Earlier in the day, wild-card Venus Williams progressed to the final with a 6-3, 6-2 win over Caroline Wozniacki. Her sister could reach the final.
In a tight first set, Cornet broke the serve of the powerful American in the ninth game, before holding in the next to take a one-set advantage.
She carried that momentum into the second, breaking the world number one in the opening game, before losing her own serve in the fourth.
She broke for a second time to take a 4-3 lead, before Serena saved four match points on her own serve at 5-3. It mattered little however, as Cornet held to love in the next game to book her place in Saturday's final.
Serena was contrite in defeat, admitting that she made too many mistakes to have any chance of winning.
Cornet played, she said.
"I didn't play well. I tried, though. I just kept hitting errors. I don't think I've made that many errors in a match in at least three, maybe four years," Williams said.
"I think out of a 10, I was at, like, minus 283, so...wow."
Cornet will meet Venus, who took one hour 22 minutes to overcome Denmark's Wozniacki.
The first set saw numerous breaks of serve, Venus claiming a second set point on the Wozniacki serve to get her nose in front.
The second was a more straightforward affair, Venus breaking her opponent twice more on her way to victory and her biggest final in almost four years.
"I feel like I've just gotten so much better since my first round to now," she said afterwards.
"I'm feeling comfortable on the court, feeling comfortable when I'm behind, feeling comfortable when I'm in the lead.
"It reminds me of when I first came on tour, just having to learn a lot, and I feel like I'm learning those lessons all over again."