Sixth seed Wozniacki, the champion in 2010, saw off unseeded American Stephens 6-2 6-3 in the first semi-final in Toronto.
Defending champion Simona Halep was thrashed 6-1 6-1 by Ukraine's Elina Svitolina in the second semi-final.
The pair played twice in the day after rain disrupted the schedule.
Svitolina lost the first set against Wimbledon champion Garbine Muguruza before the rain arrived on Friday night, and the fifth seed fought back on Saturday to win 4-6 6-4 6-3.
Romanian second seed Halep swept past France's Caroline Garcia 6-4 6-2 in the last of the quarter-finals.
None of Wozniacki's 25 career titles have been won this year - losing all five finals she has played in 2017.
"I had one year where I went to six finals and I won all of them," she said. "I guess it's a give and take sometimes and just that I keep myself in these situations is awesome."
Svitolina said she was "a little bit tired" after the rain affected her schedule, but is ready for the final.
"I didn't expect this type of day but I'm very happy that I could stay very focused," she said. "Yeah, I'm very happy."
Denmark's Caroline Wozniacki will try to win her first title of 2017 after reaching her sixth final with victory over Sloane Stephens at the Rogers Cup.