The 24-year-old world number 76's hopes of securing a first career WTA singles title looked to be diminishing when she was crushed in the first set, but she responded superbly to sink Pennetta 2-6 6-3 6-4 in one hour 44 minutes.
Sixteen-time major winner Williams of the United States enjoyed a more straightforward passage in the second semi-final, toppling third seed Klara Zakopalova of Czech Republic 6-0 6-4.
Williams' victory, which was never in doubt after she took the first eight straight games, marked her 50th match win of the year.
Zakopalova got back to 2-2 in the second set and then broke the American again soon after to get back to 4-4, but Williams raised her level to finish things off in one hour seven minutes.
"I was hardly making mistakes in the first set - I have to figure out a way to continue that tennis for more than one set, and I'm definitely going to go back and watch the film," Williams said on www.wtatennis.com.
"In the second set she started playing a lot better. She was being more aggressive, and I started making some errors on a few key points. I think that was a turning point. I'm happy I could close it out."
Williams, who beat Larsson in the Fed Cup earlier this year - their only previous meeting - expects a tough final on Sunday.
"She has nothing to lose and everything to gain, and that's a great position to be in," the 31-year-old said.
"I remember playing her this year. She has a good serve, a good kick - I always thought she'd be good on clay. And I remember her spirit - she was fighting really hard. I'm excited for her."
Larsson will be contesting her third career final on Sunday and looking to go one better than she managed in Portoroz in 2010 and at this event in Bastad two years ago.
"It was a real battle out there today [Saturday]," Larsson said. "Flavia was playing really well and wasn't even missing in the beginning. I was trying to get some help out there from the crowd and get my feet moving more, and it turned out really good.
"The crowd was unbelievable - I wish there were more weeks in Bastad during the year - sometimes I even get goosebumps playing in front of them, it's that good.
"I'm really excited to play the final here again. With Serena on the other side of the net it's going to be extremely tough out there, but I'll just try my best and keep doing my thing tomorrow [Sunday]."