Stevan Jovetic put the hosts ahead in the fourth minute before Cesare Natali made it 2-0 in the Tuscany derby shortly after the hour mark.
Siena gave themselves a lifeline with one minute to go when Emanuele Calaio converted from the penalty spot following Matija Nastasic's handball.
Fiorentina held on for the win as Siena conceded their sixth loss away from home.
Fiorentina coach Delio Rossi handed new signing Amauri his first start.
Amauri, who joined the Viola from Juventus this week, played alongside Stevan Jovetic up front in his first league appearance this season.
The Viola took the lead when Jovetic got past his marker and struck the ball from outside the area past Siena goalkeeper Gianluca Pegolo.
Siena had the first chance midway through the first half when Gaetano D'Agostino's hard drive from 30 yards was kept out by Fiorentina goalkeeper Artur Boruc.
The visitors continued to press forward but the home side looked more dangerous.
Fiorentina twice had the chance to extend their lead before half-time.
Pegolo did well to clear Andrea Lazzari's powerful header from Jovetic's cross.
Amauri then forced Pegolo to stretch fully to clear his right-footed strike towards the far post.
The former Juve forward came closer to scoring in the 55th minute when he got behind Manuel Pasqual's cross and headed goalbound only for his effort to be saved by Pegolo.
Fiorentina doubled their lead in the 62nd minute when Natali headed Riccardo Montolivo's free-kick and his effort beat Pegolo.
In the 70th minute, Cristiano Del Grosso's 30-yard drive was kept out by Boruc as Siena tried to get back into the game, but without success.
Amauri should have put the game beyond Siena's reach with nine minutes to go but his eight-yard shot was easily saved by Pegolo.
Siena halved the deficit when Calaio struck the spot-kick past Boruc and into the bottom-right corner of goal.
Fiorentina held on for three points.