The second seed struggled early on against the 33-year-old Italian, being taken to deuce six times and having to save a break point in the opening game before failing to convert two break points in the second.
Her superior power then kicked in and she dropped just three points in the next three games to build a 4-1 lead.
An inconsistent game at 4-2, with two aces followed by a double-fault and a netted forehand, allowed Farina Elia to recover the early break but the Italian dropped her serve in the next game to leave Kuznetsova serving for the set.
A winner at the net then gave Kuznetsova a break for 1-0 in the second set and that proved to be enough to put her into her second semi-final of the year.