Kerber, the 2018 Wimbledon champion, is into her first WTA final since 2019 having come out on top 3-6, 6-4, 7-6 (7/3) in the evening semi-final.
"It's unbelievable, I have goosebumps," said Kerber, a three-time Grand Slam winner, after being given a standing ovation by the home crowd.
"I have worked hard in the last few months to come back. And it was worth it."
She will now play Katerina Siniakova of the Czech Republic in Saturday's final.
Kvitova, the world number 12, withdrew from the French Open after tearing an ankle ligament in a freak accident as she walked out of a TV studio in Paris.
Yet the two-time Wimbledon champion gave as good as she got on grass against Kerber, with both players breaking each other three times in the deciding set before the German held her nerve in the tie-breaker.
As rain washed out Thursday's schedule, Kerber won her quarter-final on Friday morning, to claim a 2-6, 6-3, 6-3 over Amanda Anisimova of the USA.
Kerber then backed it up hours later with another three sets victory in the semi-final.
"I can't remember the last time I played two matches in one day, let alone six sets," she said.
Earlier, Siniakova booked her place in the final with a 6-2, 6-4 win over Spain's Sara Sorribes Tormo in the last four.