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.

Egypt's Sobhi sentenced to a year in prison in academic fraud case
Arsenal thrash Villa 4-1 while Chelsea and Man Utd both held
Desert Vipers head to finals after 45-run win over MI Emirates in Qualifier 1
World Sports Summit showcases Dubai’s pull as global hub for sporting icons
Pakistan's Afridi out of Big Bash League with knee injury
