"I think I was moving very well and retrieving and just trying to stay aggressive when I could," Wozniacki said. "But it was a difficult match. And I think it was closer than what the scoreline showed."

Wozniacki, the No. 6 seed from Denmark, will play either defending champion and second seed Simona Halep of Romania or fifth-seeded Elina Svitolina of Ukraine in Sunday's final.

Halep and Svitolina were scheduled to play Saturday night after winning rain-delayed quarterfinal matches in the morning.

Wet weather hampered the proceedings at the WTA Tour Premier 5 event for a second straight day. The afternoon semifinal was briefly delayed in the second set.

Wozniacki knocked off top-ranked Karolina Pliskova on Friday just over five hours after they started warmups. They had to wait out four rain delays and spent nearly three hours on court.

Stephens, who is trying to regain her form after missing almost a year due to a foot injury, showed flashes of her impressive power game. But she had 41 unforced errors, compared to 11 for Wozniacki.

A former top-15 player, Stephens returned to action last month at Wimbledon. Her ranking has plummeted to No. 934 due to her extended absence.

"I didn't win, but I think this whole week was a very big personal victory," Stephens said. "So I didn't win the tournament, but in my eyes I did."

Wozniacki, a former world No. 1, is 0-5 in finals this season. The 27-year-old won the Rogers Cup in 2010 at Montreal, one of 25 career titles.

"I don't really think too much about others when I'm out there on court, I just think about myself and what I need to do," Wozniacki said. "And every time I step out on the court, I believe I can win.

"That's really the way I think."

Stephens did not have high expectations for this summer and was quite pleased to reach the final four.

"For this to be my third tournament back and playing like this, I mean I really couldn't ask for anything more," she said. "So I'm super happy with that."