It took more than three hours to separate the Russian pair over three sets, with Vesnina eventually prevailing (6)6-7 7-5 6-4 to pick up her first ever title at the tournament.
Indeed, it was a first ever final at Indian Wells for the world number 15, but she made a perfect start with a break at the first opportunity to move into a 2-0 lead.
Kuznetsova - appearing in her first Indian Wells final since 2008 and third overall at the tournament - responded with a break of her own, though, and that set the tone for a topsy-turvy match that swung both ways.
Kuznetsova had a chance to wrap the set up against serve in the 10th game of the opener following two breaks apiece before that, but Vesnina held on to force a tie-break.
Once again both players struggled on their own serve and Kuznetsova squandered two more set points before finally clinching the first to move into the lead.
It was more of the same in the second as only four of the 11 games went with serve, but this time it was Vesnina who had the edge and she won five of the final six games to force a decider.
Kuznetsova then lost on her own serve in the first game of the third set to give Vesnina the initiative, although once again the world number eight responded immediately and pushed into a 4-2 lead.
However, despite having the match in her hands yet again she succumbed to another late flurry from Vesnina, who won the final four games to take the title on her second match point.