The 32-year-old Kvitova had never advanced to the semifinals in 10 prior appearances in the Cincinnati tournament. It is Czech's 40th career final, and she'll face another surprise entrant in Frenchwoman Caroline Garcia, the first qualifier to reach the final in Cincinnati.
"That's nice to have this experience, even in my age," Kvitova said, smiling on Saturday.
"In my career, I had many, many finals, but never here. It feels different because it's for the first time in Cincinnati."
Kvitova almost didn't make it out of the first round, having to save a match point against last year's finalist, Jil Teichmann. She also needed three sets to beat fifth-ranked Ons Jabeur in the third round.
"It's like a second chance that you are almost gone and now you are still here and playing in the (final)," Kvitova said.
Keys, the 2019 champion in Cincinnati, defeated three grand slam winners this week, but couldn't close out Kvitova.
The 28-year-old Garcia won her seventh straight match, beating sixth-seeded Aryna Sabalenka 6-2 4-6 6-1.
There were two rain stoppages during the match, totaling four hours. Garcia took the first set, but following an almost 2 1/2-hour delay, Sabalenka forced a third set.
The second rain delay came with Garcia leading 3-1 in the third. But once play resumed, she made quick work of the Belarusian, winning three straight games to become the first qualifier to reach the finals in a WTA 1000 event.
"No one expected it, that's for sure," Garcia said.
"It's a long way to come from (qualifiers). It's one match at a time. Try to take the best from every match and improve through the tournament.”
It will be the ninth meeting between Kvitova and Garcia, with Kvitova winning five, including two straight wins in Miami and Madrid.
"She's a great champion,” Garcia said. “You have to play faster and move better on court against a player like this. It's a great challenge for me to play against Petra."
There was an unexpected finalist on the men's side as well.
Crotian Borna Coric, who was ranked No. 152 and entered the event with a protected injury ranking, reached the final by defeating four seeds, including No. 9 Cameron Norrie in straight sets 6-3 6-4 in the semis.
Coric, the lowest seed to ever reach the finals in Cincinnati, faces a tall order on Sunday in world No. 4 Stefanos Tsitsipas who defeated top-ranked Daniil Medvedev 7-6 6-3 6-3 in the featured semifinal match on centre court.
Tsitsipas reached the semifinals for the third straight year, but it's his first final after losing in the semis each of the past two years. Tsitsipas defeated Medvedev for the third time in ten meetings.
Coric says he's realistic about his chances on Sunday.
"He's a big favorite in the final tomorrow, obviously," Coric said.
"I've done everything that I could this week. More than I expected. I'm just going to go out there and enjoy myself tomorrow."