Simona Halep dug deep to beat Jessica Pegula 2-6 6-3 6-4 to punch her ticket to Sunday's Canadian Open final where she will face Beatriz Haddad Maia after the Brazilian toppled Karolina Pliskova for her latest win over a marquee player.
Two-time tournament champion Halep got off to a sluggish start and the American took full advantage, wrapping up the 35-minute first set with an ace.
But a loose service game by Pegula early in the second set, capped by a unforced backhand error, gave the Romanian former world number one a 3-1 lead as frustration began to mount in her less experienced opponent.
In the third set, Halep broke at love for a 3-2 lead and hung on to claim her 37th victory of the year despite producing 10 double faults and putting fewer than 60% of her first serves into play.
With the win, Halep will re-enter the top 10 for the first time in almost a year when the new rankings are released on Monday.
"The fire is back," Halep told reporters when asked about moments in the match where she appeared poised to take out her frustration on her racket.
"It's a good sign if I do that... it helps me sometimes. I don't know always if it's good or not. But it helps me."
The popular former world number one, who saved 12 of 17 break point chances, said she got a boost in the match's biggest moments from the vocal support of the fans in Toronto.
"It felt like I was in Romania today," she said.
"They sent a lot of energy. In the tough moments they really pushed me. So I would like to thank them for that. And I'm waiting for them, actually, tomorrow."
In the other semi-final, Haddad Maia broke the big-serving Czech to open the match and produced two excellent first serves to capture the first set.
Pliskova responded with more aggressive play in the second set, which resulted in a 5-2 lead but Haddad Maia weathered the storm and battled back to force a tiebreak.
In the breaker, Pliskova saved one match point but failed to convert her set point opportunity and double faulted to end the hard-fought affair.
The unseeded Haddad Maia has defeated local favorite Leylah Fernandez, world number one Iga Swiatek and Tokyo Olympics gold medalist Belinda Bencic en route to her first WTA 1000 event final.
Haddad Maia beat Halep in the semifinals of the Birmingham Classic earlier this year, a tournament she went on to win for her lone WTA title.