The 2017 US Open finalist notched her fifth career title and second this season after a win in Charleston in April.
She'll return to the top 10 in the world rankings with the US Open a week away.
Kuznetsova, a two-time Grand Slam champion working her way back up the rankings after a series of injuries, was broken back in the 10th game of each set by 16th-seeded Keys -- who fired 13 aces on the way to victory.
"If my team had told me a week ago that I would be here, I would have laughed in their face," admitted Keys, who had endured two opening-match defeats since a second-round exit at Wimbledon.
Keys belted a total of 43 winners with 33 unforced errors and broke Kuznetsova three times.
Despite leading both sets, Kuznetsova never had a set point in either, Keys winning the final four games of the first set before dropping her serve in the third game of the second.
Keys broke Kuznetsova to level at 5-all and ran out the winner in the ensuing tiebreaker as the Russian sent a service return long on Keys's second match point.
Former world number two Kuznetsova, who received a wildcard into the draw, beat top seed Ashleigh Barty, world number three Ashleigh Barty and 2017 US Open champion Sloane Stephens on her way to the final.
The Russian veteran will jump from 118th to 31st in the rankings and said she'd had a "great week."
"I want to thank the tournament for giving me a wild card for the second years in a row," she said. "I certainly did better than last year. Thanks to the American people who supported me and pulled me through many matches in this tournament."