Wozniacki will next take on Czech world No.1 Karolina Pliskova in the quarter-finals here on Friday, reports Efe.
Stephens, who is ranked 934 in the world, was playing in just her third tournament after missing 11 months while recovering from foot surgery. She beat Petra Kvitova, Angelique Kerber and Lucie Safarova to reach the semi-finals.
All of the delays came in the first set and Wozniacki seemed to gain encouragement as she bounced back from 3-0 down.
Things got a bit complicated in the second set for the Dane, with Stephens turning around a 1-3 deficit to level the match.
Wozniacki beats Stephens to reach Rogers Cup women's final
Wozniacki regained the momentum and after a brief rain delay she served out the match at 5-3.
Wozniacki will face the victor of Saturday night's semifinal between defending champion and No. 2 seed Simona Halep of Romania and No. 5 seed Elina Svitolina of Ukraine.
Halep and Svitolina won rain-delayed quarter-final matches early Saturday, hours before their semifinal.
Later Thursday, fifth-seeded Ukrainian Elina Svitolina defeated American Venus Williams 6-2, 6-1, and Spain's Garbine Muguruza dispatched Australian qualifier Ashleigh Barty 6-0, 3-6, 6-2. They now face the daunting task of having to play their semi-final later in the day.