The Italian needed one hour and 41 minutes to see off the 2011 Wimbledon champion and claim her eighth WTA title, with Maria Kirilenko's place above her in the rankings now looking vulnerable.
Kvitova dominated the first set on the clay court in Poland, saving seven of eight break points, but four double faults handed Vinci the initiative she needed to close out a tie-breaker.
The Czech found the second set a bigger struggle with the 2012 US Open quarter-finalist's dominance on her first serve proving decisive.
Vinci, who took just 49 minutes to beat Germany's Annika Beck 6-1 6-0 in the last four, now has an 8-1 record in WTA finals.
Vinci told wtatennis.com: "I played a really good game today [Sunday].
"Petra was playing very well and very aggressively in the first set, getting a lot of first serves in, but I stayed with her and won the tie-break, and things were better in the second set, probably because she was a little bit tired.
"But everything was working for me all week. I'm happy I was able to beat such a tough opponent and win this title."
Taranto-born Vinci must now travel to Palermo for the Fed Cup, where she is likely to face Kvitova once again as Italy take on the Czech Republic.
"It was a very tough match against Roberta today," Kvitova said.
"I started pretty slowly at the beginning of the match and I was always the second player on the court because she was dictating everything out there - she plays very well on the clay.
"I also felt a little bit without energy. But she was the better player on the court for sure and she really deserved to win the title today [Sunday]."