Wozniacki secured a hard-fought 4-6 6-3 6-4 victory over Barbora Zahlavova Strycova of the Czech Republic.
Former world No 1 Wozniacki looked to be in trouble after losing the first set before falling a break down in the second.
But Wozniacki battled back and won 10 of the next 13 games to take the second set and build a 4-2 lead in the third before closing out the contest.
“For me, it was about just staying in the match. I didn’t start off too well, I didn’t really feel the depth of the ball that I wanted to,” said Wozniacki.
“But I started playing better as it went on and I think she did too. I just had to kind of get going out there.
“We were out there for a long time but I knew the longer we went I wouldn’t really feel tired. I was still feeling fine at the end of the match. But I’m definitely just happy to get through this one today.”
In contrast, Williams had a much easier passage through to the final.
The 34-year-old, who will become the fourth oldest women to win a WTA title if she defeats Wozniacki in New Zealand, defeated fellow American Lauren Davis 6-0 6-3.
Williams did suffer a minor hiccup against Davis, losing three games in a row to trail 3-2 in the second set having the first seven games of the match.
But she then reeled off the last four to complete the win to secure place in the final alongside Wozniacki, a player she has beaten in all five of her previous meetings, but the Dane is hopeful of ending her losing streak against Williams.
“She’s obviously a tough competitor. It won’t be easy, but I’m looking forward to it,??? added Wozniacki.
“I’m happy to be in my first final of the year, and hopefully there will be many more to come.”