Radwanska double faulted twice in the eighth game of the last set when Petrova broke her to go ahead 5-3 before winning the match in the next game with a smash to the corner.
The 17th-seeded Russian had a sore back at the start of the tournament but got stronger with each win.
"To be honest with you, I don't know where I found the strength and the willpower to fight in the third set," Petrova said. "This is the biggest tournament I've ever won. This is a great accomplishment."
Radwanska was bidding to become the first player here to win back-to-back titles since Lindsay Davenport in 2003 and '04.
Petrova got off to a good start, breaking Radwanska in the first game of the match after being down 30-love. She would break her opponent two more times in the first set and looked set for an easy win.
But Radwanska bounced back in the second set, winning the first five games while breaking Petrova twice.
The two players traded games in the final set before Radwanska's serving problems in the eighth game led to the only break of the set.
"I think I was just trying to do too much," Radwanska said. "For sure, I shouldn't do that at that point in the match but there is nothing I can do about it now. "
It was Petrova's second title of the season. She won a title earlier this year at 's-Hertogenbosch in the Netherlands.