Petrova, returning to the court after saving Russia from elimination in Sunday's second singles, and Vesnina registered a 7-5 7-6 victory, claiming the second-set tiebreaker 7-1, to lift Russia into the final.
Winning two critical matches on Sunday was especially sweet for the 25-year-old Petrova, who felt she squandered chances in a three-set singles loss to Williams on Saturday.
"I was very disappointed after losing to Venus when I had everything in my hands and then I broke down," said Petrova. "I couldn't handle the nerves and the pressure.
"So, I thought, OK, I'll let it go. So today I got to do everything...make it up to them. I did it today. It just feels great. It feels fantastic."
Williams was also playing her second match of the day after beating Anna Chakvetadze 6-1 6-4 in Sunday's opening singles.
"I definitely felt good going out there," the 27-year-old Williams said. "It was just a couple points here and there. I felt like I missed some shots that I should have made."
The triumph put Russia into the final against holders Italy, who also needed a victory in doubles on Sunday to defeat visiting France in their semi-final.
Also stepping up for Russia was 20-year-old Vesnina, who hit three winners and an ace in the tiebreaker.
"It's one of the best moments in my life. I was so nervous before the match," said Vesnina, who credited Petrova with giving her confidence.
"This match was just unbelievable, just incredible."
Entering Sunday's action tied at 1-1, Williams gave the U.S. team a 2-1 lead by beating Chakvetadze.
After 41st-ranked Meilen Tu lost to Petrova 6-1 6-2 to level the tie at 2-2, U.S. captain Zina Garrison called on Williams to replace Vania King as Raymond's doubles partner.
Tu, a late addition to the squad for injured Serena Williams, made her Fed Cup debut in place of King, who was beaten on Saturday by Chakvetadze in the first singles match.
Russia captain Shamil Tarpischev was confident about hosting Italy in the Fed Cup final on Sept. 15-16.
"This match will take place in Moscow," Tarpischev said. "I think we have a better chance against Italy than we had against U.S."