Williams, bidding to win just her second title in Paris, 11 years after her first, looked down and almost out at one stage against the 2009 champion.
Despite coasting through the first set, she then dropped serve for the first time in the tournament, being broken three times in the second set, trailed 0-2 in the third and fought off two break points that would have seen her slip to 0-3.
But she battled back, winning six of the next seven games to secure victory in a shade under two hours.
Victory extended Williams’ winning streak to 29 matches as she moved into a semi-final clash against Italian fifth seed Sara Errani, the runner-up to Maria Sharapova last year.
“It was very difficult and I am very tired,” said Williams.
“Svetlana played very well. She has won this tournament before so I am happy to get through such a tough match.
“Against Sara, it will be another tough match, she’s a great fighter.”
Williams, who had dropped just 10 games in reaching the last-eight, eased through the first set with breaks in the second and sixth games, sealing the opener with an ace, despite the challenges posed by a tricky, swirling wind inside Court Suzanne Lenglen.
The 27-year-old Kuznetsova took a medical timeout off the court and the treatment worked wonders as she broke for a 2-0 lead in the second set.
The wily Kuznetsova, who had defeated the American at the same stage in 2009 on her way to the title, fended off two break points to go to 3-0 and broke again for 4-0 before Williams clawed one back for 1-4.
But the American then dropped serve for a third time to slip 5-1 down as the Russian forced the errors with a clever mix of power, angles and drop shots.
It was a realisation that, unlike too many others on the tour, she was not going to out-bludgeon the world number one and that the key was to keep her moving.
Williams, however, dug deep, got back to 3-5, had break points in the 10th game but a scrambling, netted backhand gave Kuznetsova the set to level the tie.
It was the first set the top seed had dropped in the tournament.
Kuznetsova kept the 31-year-old American on the back foot and was 2-0 up in the decider and had two points for a 3-0 lead.
The Dubai-based Russian couldn’t make that last push and was made to pay as Williams broke back for 2-2.
The world number one was quickly 5-2 ahead and she claimed the tie with a rasping cross-court forehand.
Errani reached the semi-finals with a 6-4, 7-6 (8/6) win over Polish fourth seed Agnieszka Radwanska.