Kuznetsova, who has risen up the rankings again after an injury lay-off, won 6-2 2-6 7-5.
The match began at a frantic pace, as Kuznetsova tried to dominate with powerful ground strokes, and Wozniacki defending admirably.
Her defences were soon broken though, when the Russian followed up an excellent cross-court forehand with an easy put-away.
Wozniacki almost broke straight back, troubling Kuznetsova with clever angles off her backhand. The Dane then saved two break points on her own serve to stay within one game.
Kuznetsova's power began to tell after that, as she won her service game comfortably before punishing Wozniacki for a somewhat fragile second serve, and took a 5-2 lead.
Despite a valiant defensive effort, Kuznetsova's relentless forehand saw her take the opening set comfortably.
Wozniacki started well in the second set, holding on to her own serve before being rewarded for her defensive efforts with a break point in the second game.
She duly took it with another good backhand, before holding again for a 3-0 lead.
Kuznetsova did manage to hold with some good serving but could not prevent her younger opponent from increasing her lead.
The number ten seed was broken as she served for the set, but responded immediately and broke Kuznetsova to take the set 6-2 and level the match.
The Russian was given a time violation at the beginning of the final set for taking too long to return from a break.
The hold-up did not affect Wozniacki though, who came out strongly, holding her serve easily before narrowly missing out on another break in the following game.
Kuznetsova was able to break in the next game before saving two break points on her own serve, first with a clever drop-shot and then a fantastic lob. She couldn't hold in the end though, losing a challenge on a fourth break point.
The set continued on serve with some very entertaining rallies as Kuznetsova's powerful forehand matched Wozniacki's impressive backhand.
It was Kuznetsova who made the breakthrough though. After missing three break-point chances at 4-4, she forced the break at 5-5.
The Russian pulled Wozniacki around the court to create two match points in the final game, winning with an easy backhand at the net to take the set 7-5.