Safin, seeded third, struggled with numerous unforced errors before prevailing 6-7 (6-8), 6-4, 7-6 (8-6) in a match completed in over two hours.
Safin has had a disappointing year with his only title captured recently at Tashkent, Uzbekistan against fellow Russian Yevgeny Kafelnikov, who is seeded second this week.
Kafelnikov beat 18-year-old countryman Mikhail Youzhny for the second time this month on Russian soil in a tough contest, 7-6 (7-1), 7-6 (8-6), 7-5. He also defeated Youzhny, 6-3, 6-3, en route to capturing his fifth straight Kremlin Cup crown.
The 27-year-old from Sochi has dominated the Moscow tournament over the last six years. Kafelnikov won here in 1995, reached the final the following year and was a semifinalist last year.
Kafelnikov has played strong as the season winds down. In addition to winning his second title of the year in Moscow, he reached the semifinals at the U.S. Open, the final at the President's Cup in Tashkent and the semifinals at the Tennis Masters Series event in Stuttgart last week.
Doubles expert and unseeded Max Mirnyi of Belarus was a winner over No. 7 Greg Rusedski of Britain in a battle of big servers, 7-6 (14-12), 6-4. Mirnyi also beat Rusedski in the last meeting at the 2000 Indian Wells.
Mirnyi, playing some of the best tennis of his career recently, defeated four Grand Slam winners to reach last week's final in Stuttgart.
Rusedski has failed to reach the quarterfinals stage since the Legg Mason Tennis Classic in Washington in mid-August.
Rainer Schuettler of Germany had an easier time against Daniel Vacek of the Czech Republic, 6-2, 6-4. Schuettler eliminated top seed Juan Carlos Ferrero on Wednesday, which makes four seeded players bounced in the early stages.