Swiss teenager Belinda Bencic upset world number one Serena Williams to reach the Rogers Cup final in Toronto.
Bencic, 18, fought back to beat the 21-time Grand Slam champion 3-6 7-5 6-4 – only the second defeat for Williams in 45 matches this year.
The American, 33, has won the first three Grand Slams of 2015 and will go for the calendar Grand Slam at the US Open, which begins later this month.
Bencic will play Romanian second seed Simona Halep in the Toronto final.
Halep, who is playing her first event since losing in the first round at Wimbledon, beat Italy’s Sara Errani 6-4 6-4.
“I’m completely dead now, it was a very tough match,” said Halep. “She played amazing, she was running everywhere for all the balls.
“I did everything I could to finish in two sets because in the third one I don’t know what would happen.”