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.

Ryder Cup stars Hovland, Lowry, Johnson to play 2026 Hero Dubai Desert Classic
UAE qualifies for FIFA Arab Cup quarter-finals
Desert Vipers beat MI Emirates by one run in a last-ball finish
Red Bull consultant Marko to leave F1 team
Dubai Basketball continues strong form across Europe
