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 on 31 August.
"I played like an amateur to be honest," said Williams.
"I felt pretty much in control until I lost the match."
Bencic, the youngest player to beat Williams in a completed match since Maria Sharapova in 2004, said victory was "an incredible feeling".
"I was very overwhelmed from the situation on the court, but I'm just so happy the forehand landed in [on match point]," she said.