Czech Kvitova, the second seed, came through a tough first set that lasted longer than an hour and came from 5-2 down in the second, reeling off five games in a row to triumph.
"In the tiebreak I just played point by point - I wasn't thinking about the score," Kvitova said.
"In the end it was pretty close and I'm really glad I won it ... I made a lot of mistakes and went 5-2 down but then I tried not to think about my shots or tactics and started putting the ball into the court more."
Kvitova, who won Wimbledon last year, lost to Kirilenko in the quarter-finals of the Olympic Games at the All England Club recently.
"Even though I lost I still feel positive," said Kirilenko, who committed seven double faults.
"I played really well this week. I played a good match today. Unfortunately, I was unlucky in the final today."
Kvitova also won the WTA tournament in Montreal earlier this month and has nine career titles to her name.
"It's unbelievable. I played three tournaments in a row and won two," Kvitova said.
"I've played a lot of matches and I'm feeling more relaxed and confident on the court. I hope all of this will continue into the US Open next week."