The Russian fired five aces and dominated most of the match, hitting twice as many winners in securing her 22nd victory of the year as she looks to win her second title of the season.
She will meet Italy's Francesca Schiavone in the final Sunday after the third seed progressed when Russian Svetlana Kuznetsova retired from their semifinal with a groin injury.
Schiavone was leading the match 7-6 (7-2), 3-2 when the fifth seed called her trainer for the second time in the match and then retired.
Petrova got her first serve in nearly 80 percent of the time and kept Safarova off balance for most of the match.
"I just took everything into my hands," Petrova told reporters.
"Serving very good helped me to finish off the match easily. On a day like today, you don't get physically tired, you get mentally tired, because you really try to be more concentrated and be more sharp on court.
"I'm really happy that it went that way."
Kuznetsova had won three of her previous four career matches against Schiavone, but she strained her groin early in the match and despite playing with a bandage, was obviously hampered by the injury for most of the match.
"I can play with pain, but sometimes you have to take care of yourself," Kuznetsova told reporters.
"Even if I won this match I wouldn't be able to play tomorrow. It took me a while to say let's withdraw."