Belinda Bencic stunned Serena Williams in the Rogers Cup semi-finals, the Swiss prodigy taking down the world number one in three sets.
Unseeded in Toronto, world number 20 Bencic staved off Williams on multiple occasions to earn a 3-6 7-5 6-4 victory in two hours, 28 minutes - earning a berth in the final against Simona Halep.
Williams threatened to reel in Bencic when coming from 5-1 down in the third set to get back on serve at 4-5, but the top seed was effortless to deny the teenager.
Bencic fell to a double-break deficit in the first set, and while she got one Williams break back, the American took the first as the match went to script.
But the young upstart, who had already beaten former number ones Caroline Wozniacki and Ana Ivanovic on her way to the last four, could sense a weakness in the incumbent, as she broke in the eighth game on her fourth break-point opportunity.
However, Williams' retort was to save a set point and break back, before being on the brink of advancing when holding a 0-40 lead on Bencic's serve at 5-5.
But the Swiss' resistance matched that of 21-time major champion Williams, as she held and then broke to 15 to force a third.
Few would have still predicted Bencic could complete the win, however, she saved three break points in each of her first two service games - and broke Williams to love and 30 to leap to a 4-0 lead.
Williams was flattened by the deficit, but still dug her heels in, breaking Bencic twice in a row - while losing serve herself - to bring it back to 3-5.
After failing to serve out the match at the first instance, Bencic erred again on serve as Williams surged - but the youngster had the final counter-punch, winning on her first match point.
Earlier, Halep - the second seed - earned a spot in the final with a 6-4 6-4 victory over Sara Errani.
The Romanian world number three was coming off back-to-back three-setters, and started slowly when Errani broke for a 2-0 lead.
But Halep found her range quickly, breaking twice in succession to lead 3-2 - and losing just two points on serve thereafter to take the first set.
The first three games of the second set went against serve - Halep earning a 2-1 lead, but Errani did not give up easily, levelling for 4-4.
Halep broke straight back yet again, as Errani failed to consolidate - and the second seed eventually advanced on her fourth match point.
Halep can make it three-from-three in WTA Premier-level finals in 2015, after earlier wins in Dubai and Indian Wells this season, when she plays Bencic in Sunday's decider.