The No. 8 seed, who won the Qatar title in 2018, looked on course for a routine victory after running away with the first set, but former French Open champion Ostapenko clawed her way back into the contest with some gutsy hitting from behind the baseline.
The 22-year-old improved her first-serve percentage from 52% to 73% in the second set and converted four of her six break point chances to level the match.
Both players struggled for control in the wind swirling through centre court, but it was 29-year-old Kvitova who kept her head as Ostapenko faded badly in the decider.
"There's no chance to have tactics in this wind," Kvitova said after the match. "It's difficult to put the serve in and she returned the second serve well. I needed to be more patient. It was about taking time and it was really difficult."
Kvitova served nine aces, but made an equal number of double faults, while Ostapenko also struggled in the conditions with 11 double faults of her own.