Vekic next faces the winner of the all-Russian clash between third seed Daria Kasatkina and wildcard Vera Zvonareva in the semi-finals.
Second-ranked Kvitova, who was beaten by Japan's Naomi Osaka in the Australian Open final last week, had her service broken for a second time in the opening set as Vekic went ahead 5-4 before claiming the early advantage in the contest.
Kvitova took the first game of the second set but Croatia's Vekic raised her level a few notches, reeling off six games in a row to seal her third victory over a top-five player.
Earlier, fourth seed Aryna Sabalenka celebrated her first week in the world's top 10 with a comfortable win, defeating Russian qualifier Ekaterina Alexandrova 6-3 6-4.
Up next for the world number 10 from Belarus is Kiki Bertens, who battled past Russia's Anastasia Pavlyuchenkova 6-2 3-6 6-0.
(Reporting by Shrivathsa Sridhar in Bengaluru; Editing by Toby Davis)
Share
