Both women secured breaks in the early stages of the first set, but it took a tie-break to decide the opener, with Kvitova eventually coming through 7-3.
It was a different story in the second set, however, with Kuznetsova breaking her opponent three times on her way to levelling the match at one set all.
The best of the drama came in the third and final set, however, with both players again breaking twice to leave the score at 6-6.
Kvitova, who was eliminated at this stage of the competition in 2013, then broke to take control of the set, but Kuznetsova responded straight back as the match moved level at 7-7.
Kuznetsova managed to hold her next service game, however, before breaking to love to book her spot in the fourth round of the competition after more than three hours of tennis.
Kuznetsova, who is currently world number 28, will face Lucie Safarova in the next round.