Williams was not at her best against Agnieszka Radwanska, but dug deep to sink the Polish third seed 7-6 (7/3) 6-4 at the hardcourt event in Toronto.
The 16-time grand slam singles winner twice went a break up in the first set only for Radwanska to break right back before the American clinched the tie-break on a huge ace.
Williams then had to rally from 3-1 down in the second set to topple the spirited world number four.
"It was really close and I had my chances but wasn't really taking them," Radwanska said on www.wtatennis.com. "She definitely played well, especially in the tie-break. And she played much better in the end of the second set, playing aggressive and deep.
"That's what makes her number one in the world - playing unbelievable in the very important moments, and just hitting some very powerful shots. I couldn't really do anything about that against her tonight [Saturday]."
Earlier, Cirstea stunned fourth seed Li Na 6-1 7-6 (7/5) to reach the third WTA final of her career.
The world number 27 was completely dominant in the early stages against the former French Open champion, who managed only 12 points in a first set which lasted just 22 minutes.
However, the second set was completely different.
Li stormed to a 5-2 lead and appeared to be taking the match into a decider, only for Cirstea to reel off four games in a row from there to go up 6-5 and take a 40-15 lead for double match point.
She missed on both, though - one with a forehand down the line that landed just wide and the other a backhand into the net as Li forced a tie-break.
The world number five went 4-1 up but Cirstea - already a winner against Caroline Wozniacki, Jelena Jankovic and Petra Kvitova this week - claimed six of the final seven points to close out the match.
"I think I came on the court with a really good mentality today [Saturday]," Cirstea said.
"I was very focused from the start, and even when she started to push me in the second set I was still playing quite well - except those two match points at 6-5, of course, when I think I got a little bit tight.
"I'm happy with how I fought in the end and I'm really happy to finish the match in two sets."