Marvin Compper headed home a corner 15 minutes from time to book Fiorentina a two-leg tie against Udinese, which beat AC Milan on Wednesday.
Josip Ilicic gave Fiorentina the lead in the 20th minute, shrugging off his marker to control a ball before slotting under diving Siena goalkeeper Simone Farelli.
Guillermo Giacomazzi leveled on the hour mark with a glancing header from Francesco Valiani's free kick.
Siena almost equalized immediately after Fiorentina's opener but Neto pulled off a fantastic save to fingertip Michele Paolucci's effort away from his top left corner
Neto pulled off another good save in stoppage time to keep out Alessandro Rosina's swerving strike.
Fiorentina beat Siena 2-1 in Italian Cup quarters
Advertisement