World number one Serena Williams saw off a spirited Agnieszka Radwanska 7-6 (7-3) 6-4 to reach the final of the Rogers Cup in Toronto.
The 31-year-old, seeking her eighth title of the year, has won the event twice previously, in 2001 and 2011.
Williams needed medical treatment for a stomach ailment before completing victory in an hour and 51 minutes.
She will face Romania's Sorana Cirstea, the 23-year-old world number 27, who beat China's Li Na 6-1 7-6 (7-5).
An eighth victory of the season for Williams would equal her previous best haul in 2002.
She has 53 titles overall in her career, which puts her tied for ninth place on the all-time WTA title list with Monica Seles.
Williams twice recovered a break in the opening set to force a tie-break in which she quickly established a 3-1 lead, and the American sealed the set with an ace.
In the second set she trailed 3-1 but after a medical timeout she levelled with a fierce overhead winner.
The 16-time Grand Slam winner then saved a break point to hold for a 5-4 lead, and broke the Pole with a backhand winner followed by a high forehand volley on match point.
"This is what makes her number one in the world, playing unbelievable in very important moments and just very powerful shots," world number four Radwanska said.
"I don't think I was playing as aggressive as I needed to play," Williams said. "I let her play her game, which is what she wanted to do, but I wasn't able to play my game as much."
Cirstea has already eliminated former world number ones Jelena Jankovic and Caroline Wozniacki, as well as defending champion Petra Kvitova.
It will be her first final in five years, and only the third of her career.
Cirstea missed two match points as she failed to serve out at 6-5 in the second set, but took the tie-break after winning six of the last seven points, clinching victory on her third when Li double-faulted.
"I'm happy with how I fought in the end and I'm really happy to finish the match in two sets," said Cirstea, who won her only previous singles title five years ago at Tashkent, Uzbekistan.
Williams has comfortably won both of her previous matches against Cirstea, the most recent of which came in the third round at this year's French Open but said of her opponent: "Gosh, she hits really hard.
"She has a really big serve. She moves well, she's definitely not an easy player to play. She is a player who has finally found herself, and she's playing better and better and getting more confident."