The Dane triumphed in two sets but was pushed all the way in both by the world number five.
It was Radwanska who broke first, in the fifth game, only for Wozniacki to respond immediately, and the 12th seed then began to get the better of the long rallies as she fought to win the first 6-4.
The 24-year-old took this momentum into the second and earned an early break, but several unforced errors gifted Radwanska a route back into the match as she strung together three successive games.
Wozniacki managed to regain her composure to break her Polish opponent for a fourth time in the contest, and, with the rest of the set going with serve, a tie-break was needed to settle it.
Over half of the points went against the server, but Wozniacki opened up a 5-2 lead and then safely saw out the rest of the breaker to move into the last four of the tournament, where she will face the top seed.