Eighteen-year-old Belinda Bencic has come from a set down to beat world number one Serena Williams and book a Rogers Cup final place in Toronto.
The Swiss stunned the veteran American with a 3-6 7-5 6-4 win in precisely two-and-a-half hours to reach the showpiece, where second seed Simona Halep awaits.
Williams barely broke sweat en route to a 5-1 lead in the opener, courtesy of two breaks of serve. Bencic broke back in the seventh game, but it delayed the inevitable as Williams eased to a first-set lead.
The second set looked poised to be significantly more competitive, as Bencic led 4-3 after all seven games went with the serve.
It became clear that the set may hinge on the first break, and it came from the underdog as she broke to move 5-3 ahead. Williams hit back immediately, but Bencic inflicted yet another break of serve in the 12th game to level up the match.
The roles were reversed in the decider, as the world number 20 swept aside the 21-time Grand Slam champion by cruising into a 4-0 lead as a place in the final beckoned. Williams broke back to reduce the deficit to 4-1, but Bencic threw up a swift riposte to move within one game of the final.
Williams, who has won the competition on three occasions, piled pressure on the youngster by bringing it back to 5-4, but Bencic kept her cool to book a date with Halep.