Nineteen-year-old Bianca Andreescu will face Williams in the final of the Rogers Cup.
The unseeded home favourite beat American Sofia Kenin in two sets, 6-4 7-6.
She's spent much of the past year out with a shoulder injury but gained attention with her Indian Wells triumph in March.

Victory Team's Ahmad Al Fahim takes on Dubai T100 for third year running
Abu Dhabi GP app serves as one-stop platform for race week attendees
Noskova beats Gauff to reach WTA Finals semis, Pegula stays in hunt
Etihad Airways and McLaren Racing take to the skies with racing team livery
