The Russian seventh-seed who owns grand slam titles from 2004 in Paris and 2009 in New York. Will take on the Spanish top seed competing in her third straight final here but without a career trophy of any kind.
Suarez Navarro overcame Romanian qualifier Irina Begu 7-6 (7/3), 6-1 in one and three-quarter hours,
Kuznetsova has won three of her four meetings with Suarez Navarro, the last in 2013.
"This means a lot to me. I'm far from my top level but my tennis can still get me into this final, I have a chance to beat a lot of top players and I'm gaining confidence."
More From This Section
Suarez Navarro, who cruised through her early rounds with barely a challenge, was made to work in the semi-final by Begu ranked 117.
The challenger kept the first set competitive before getting discouraged over line calls and fading in the second.
The 28-year-old Kuznetsova last played a final in February, 2011 in Dubai, where she lost to Caroline Wozniacki. The Russian's last trophy was earned at 2010 San Diego.
Vesnina, winner of Hobart and Eastbourne titles in 2013 after losing the first six finals of her career, was completely outplayed in her 73-minute loss.
Kuznetsova struck 27 winners, breaking her good friend on five of 16 opportunities.
But Vesnina, seeded eighth and ranked 33rd, showed resistance at the end, saving four match points on her serve before Kuznetsova finally prevailed. Vesnina fell victim to six double-faults in defeat.
The Russian winner began showing progress last week in Stuttgart after a slow start in 2014, reaching the quarter-finals on the German indoor clay.
Kuznetsova, who began last year ranked 71 and has now fought back to 29th on the WTA list, had lost the only other match she had played against Vesnina, in Dubai five years ago.
She was playing her first semi-final since Moscow last autumn.