Top-seeded Williams had to overcome a sluggish start to beat Wozniacki 2-6 6-2 6-4 while Serbian ninth seed Ivanovic eventually prevailed in a rollercoaster 6-2 5-7 7-5 win over the Russian fifth seed that lasted nearly three hours.
The Cincinnati tournament is the last of the key tune-ups ahead of the Aug. 25-Sept. 8 U.S. Open, the year's final grand slam, where Williams will defend her crown.
The day's first semi-final was a rematch of the thrilling quarter-final in Montreal earlier this month between Williams and Wozniacki that the American won in three sets.
Williams looked a pale shadow of herself in the 29-minute first set as she held her serve only once and recorded twice as many unforced errors as winners.
"I got off to a little bit of a slow start, but I was definitely in it," said Williams, who lost the 2013 Cincinnati title in a third set tie-break to Victoria Azarenka.
"I was just physically grinding and trying to get in there and really just trying to grind out everything."
Williams came out firing on all cylinders in the next set as she opened with a break, the first of three that set, before serving out the set at love.
The third set was a sloppy serving affair as Williams and Wozniacki exchanged seven breaks. But Williams's two holds of serve proved enough to get her into the final of a tournament she has never won in five previous appearances.
"I just didn't serve well myself today. I didn't get many first serves in. When I did, they weren't placed very well," said Wozniacki.
"It's frustrating, because you lose a match 6-4 in the third and you only hold serve once in the third set. I actually broke Serena three times in the set, too - I don't think that really happens very often to her, either."
Next up for Williams is an opponent she has dominated her entire career having taken six of seven matches versus Ivanovic, including a quarter-final win in Stanford earlier this year.
But Ivanovic, who beat Williams in the round of 16 at this year's Australian Open, will take plenty of confidence into the match having held her nerve against a determined Sharapova.
Ivanovic, seeking her fourth title this year, looked headed for sure victory after breezing through the first set and then opening up a 4-0 edge in the second for what seemed like an insurmountable lead.
But Sharapova made her opponent work for the victory as she rallied to take the second set and then built a 4-2 lead in the third, only to see Ivanovic win the next two games.
Sharapova broke again and served for the match at 5-4 in the third and even held two match points. Ivanovic fought off the first with a forehand winner while Sharapova belted a forehand long on the second.
The Russian then produced consecutive double-faults to hand a break back to Ivanovic, who fought off a break point to hold for a 6-5 lead before breaking one final time to close out the tilt on her second match point.
"I really got a little tight," Ivanovic said about her second set meltdown.
"I wasn't moving my feet forward enough and played a little passive. But she's a champion and was fighting so well.
"I just had to regroup in the third set, and I'm so glad I could win this match tonight."
- Sports & Recreation