The second semifinal pitted third-seeded Venus Williams against No. 2 Ana Ivanovic.
Pennetta, who upset top-ranked Jelena Jankovic in the second round Thursday, reached her fourth final of the year. She trailed 3-1 in the first set before finding her range and forehand power.
She then won five straight games, including three breaks of serve, to take the set.
Medina Garrigues, ranked 30th, led 3-1 again in the second. But Pennetta broke to even the set at 3-3, causing Medina Garrigues to shout at herself after hitting a forehand long.
The 26-year-old Spaniard broke to lead 6-5 but couldn't serve out the set, forcing a tiebreaker.
Pennetta survived a set point when Medina Garrigues sent a backhand return long, then converted her first match point.
Pennetta has won two tournaments this year, at Vina Del Mar, Chile, in February and Acapulco, Mexico, in March.
WC Debate: Who Are The Greatest-Ever World Cup Nation?
Pennetta beats Srebotnik to reach Zurich semis
Venus rallies to beat Ivanovic in Zurich semis