Three days after a patchy 1-0 victory over Malta secured thanks to Graziano Pelle's winner — which came off the Southampton striker's arm — this latest win for Italy took them top of qualifying Group H ahead of Norway.
The Norwegians beat third-placed Croatia 2-0 in Oslo and are two points adrift of Italy with two games left.
“I'm happy with the result, we've fulfilled our objective of taking six points from these two games, but we have to learn to be a bit more clinical in front of goal,” Italy coach Antonio Conte told Sky Sport.
“The lads gave it everything, and I'm happy with their commitment.”
On Saturday, Conte had expressed surprise over criticism of Andrea Pirlo's performance in the Azzurri's 1-0 win over Malta.
Yet the former Juventus coach bowed to the consensus when he left the New York City FC midfielder on the bench in favour of Roma midfielder De Rossi, a choice that was to bring joy and despair and equal measure.
Conte made further changes, with Antonio Candreva – who provided the cross for Pelle's winner in Florence – coming off the bench to start in place of Manolo Gabbiadini and Monaco forward Stephan El Shaarawy taking Eder's slot on the left of a 4-3-3 formation.
Italy got off to a bright start, the hosts pouncing on sloppy defending after just a few seconds to see El Shaarawy come close with a bicycle kick that flew just over after Pelle had forced a save from Bozhidar Mitrev.
Three minutes later, Russian referee Sergei Karasev pointed to the spot after Veselin Minev upended Candreva in the area and De Rossi converted at the second attempt after his first effort was disallowed for encroachment.
On what was Gianluigi Buffon's 150th appearance for Italy, the Juventus goalkeeper had comparatively little to do but pulled off a fine one-handed save to touch Ilian Mitsanski's drive around his far post after Bulgaria went on the counter.
Italy, however, dominated throughout and before the interval should have added to their early goal.
De Rossi sent off
Pelle headed over from a Marco Verratti free kick and, after Mattia De Sciglio had forced Mitrev into action following good work by Candreva and Matteo Darmian, the Southampton man saw a volley fly off target.
Candreva wasted a great chance in front of goal, and on the stroke of half-time Parolo saw his volley charged down after being set up by Pelle and Verratti.
Both sides were reduced to 10 men 10 minutes after the restart, De Rossi going from hero to villain after retaliating to a foul by Mitsanski by kicking the striker while lying on the ground. Mitsanski was also dismissed.
“He shouldn't have done it,” Conte responded curtly when asked to comment on De Rossi's gesture.
“Daniele knows he made a mistake,” said defender Leonardo Bonucci. “It wasn't the right reaction from him, but these things can happen when you are provoked.”
Their early exits failed to dampen what was a lively encounter, the excellent Candreva setting up El Shaarawy on the hour mark with a fine angled pass to the back post although Mitrev was quickly out to close down the move.
Bulgaria showed some signs of a fightback, but they could not find an equalizer and the result ends any hope they had of qualifying for the finals in France.
With two games remaining, Bulgaria are fourth, seven points behind Croatia in third place, which will guarantee at least a play-off berth.