In wet conditions at Ken Rosewall Arena, Kvitova struggled to get going but took the final four games of the opening set, hitting 16 winners in the process.
World number two Kerber responded with a resolute defence to hold serve in the opening game of the second set and the German earned three break points in the fourth, before a blistering backhand allowed Kvitova to take a decisive lead.
Fifth seed Kvitova will face Belarusian qualifier Aliaksandra Sasnovich in the semi-finals.
ATP Sydney
Highlights: Seppi sees off Schwartzmann in Sydney
11/01/2019 AT 08:35

Angelique Kerber was beaten in the quarter-finals in Sydney

Image credit: Getty Images

"It was the worth the wait to get back on court," Kvitova said.
"In the second time (off court) we played some games, some cards. I had a sandwich, I was listening to music and I was waiting (for) when the rain stopped."
In the men's draw, Andreas Seppi came back from a set down to knock out Greek top seed Stefanos Tsitsipas 4-6 6-4 6-4.
The 34-year-old Italian saved six of the seven break points against last year's Next Gen Finals winner Tsitsipas to seal his third semi-final appearance in Sydney.

Andreas Seppi overcame Stefanos Tsitsipas in Sydney

Image credit: Getty Images

"I always play my best tennis in Australia – I really enjoy playing here. It's great to be back here and in another semi-finals," said Seppi, who has progressed to the second week in four of his past six appearances at the Australian Open.
"It was very important to start well in the second set... I think was good to have early break so I could play a little more aggressive. It worked out in the end."
World number 37 Seppi will next face third seed Diego Schwartzman, who overcame Japan's Yoshihito Nishioka 6-1 3-6 7-6(1).