Radwanska was close to victory, leading 5-3 in the second set, but Wozniacki seized momentum when she broke her opponent twice to win the last four games on her way to a 4-6, 7-5, 6-4 win.
The U.S. Open semifinalist also came from 3-1 down in the third set, once again winning four straight games before closing out the match when Radwanska's return went into the net.
''It was a tough match against a great player,'' Wozniacki said. ''We always have tough matches. I was happy to fight back even though I was down a break in the second set.''
The Dane will face Naomi Osaka of Japan in Sunday's final. Osaka also rallied to beat Elina Svitolina of Ukraine 1-6, 6-3, 6-2.
Wozniacki drew on all her experience against Radwanska, beating her for the ninth time against only four losses.
''We practice together all the time so I knew what to expect,'' Wozniacki said. ''It was a good game, a good match. Nothing really surprised me.''
The former top-ranked player has faced ankle and wrist injuries this season.
''It's always a grind when you are injured,'' Wozniacki said. ''You just have to go with it and work hard. It's great to be back.''