The two-time Grand Slam title winner won her first ever meeting with Hungarian ninth seed Timea Babos
The two-time Grand Slam title winner, ranked ninth in the world, won her first ever meeting with Babos 7-5, 6-7 (2/7), 6-2.
Kuznetsova took the opening set in 50 minutes and was serving for the match in the second but Babos survived by winning the tiebreak that followed to level at 1-1 after one hour 47 minutes on court.
A left thigh injury forced Babos to take a medical break halfway into the deciding set and in the last game she collapsed in tears.
"It was really good for me that we had to play the third set. I finally relaxed and began to play my normal tennis," Kuznetsova said.
"But before that I felt stressed and rusty. When I served for the match in the second set I squandered all of my chances. It was a really terrible game. Hopefully I will be relaxed in the semi-final."
Russian veteran Kuznetsova needs to retain her Moscow title to edge Britain's Johanna Konta and claim the last spot in the elite eight-woman field at next week's season finale in Singapore.
Kuznetsova will next face fourth-seeded Elina Svitolina of Ukraine, who dumped Croatia's Ana Konjuh out of the event with a 6-1, 6-1 win in just one hour.
In the other semi-final, Julia Goerges of Germany, who saw off eighth-seeded Daria Kasatkina of Russia 7-5, 6-1, will clash with Australia's Daria Gavrilova, who beat Anastasia Pavlyuchenkova, seeded seventh, 7-5, 4-6, 6-3.
In the ATP event, Russian teenage qualifier Alexander Bublik upset top-seeded Roberto Bautista Agut of Spain, a two-time runner-up in Moscow, 6-2, 7-5.