Gold still remains elusive for the Italians, who have won five Olympic medals — a pair of silvers and three bronzes after Saturday's 3-1 win over Bulgaria.
Italy stuttered through the group phase before coming together in the quarterfinals to eliminate defending champion the United States. It was no match for Brazil in the semifinal, but clinched third place. Italy prevailed 25-19, 23-25, 25-22, 25-21.
Captain Cristian Savani scored a game-high 23 points at Earls Court to guide the Italians to a fourth medal in their past five games. Michal Lasko added 18 points for the Italians, while captain Vladimir Nikolov, in his last game, led Bulgaria with 12 points.
"I had a feeling we were going to win a medal," said Savani, who served up seven aces. "I expected it."
Bulgaria's impressive run fell short of a first men's volleyball medal since winning silver in 1980. It reached the semifinals despite turmoil before the start of the London Games, when the coach and several players quit the team.
Italy earned a match point when Michal Lasko of Bulgaria served into the net, and Emanuele Birarelli converted it with a smash. Italy has won five Olympic medals, but gold still remains elusive. Brazil and Russia meet in Sunday's final.
"Since the start of the Olympics we've had some trouble with our play, so it's a dream come true to win a medal," said Italy wing spiker Ivan Zaytsev, who scored four points. "We're very happy because we looked to close this tournament with a big win. For a lot of us it's the first medal at the Olympics, so we're happy about that."
Neither team's top spikers made an impact as Zaytsev barely played after coming off in the second set, while counterpart Tsvetan Sokolov was off-target throughout.
Bulgarian President Rosen Plevneliev was in the stands for the third straight game, but the Italians were stronger on the defensive end as they blocked and dug well to stymie Bulgaria's potent front line attack.
"We came here with one goal, to come here and play good. And we got through the quarterfinals and the semifinals," Sokolov said after finishing with 11 points. "Our team is very young, but I think Bulgaria is a very good team."
Alessandro Fei's spiking helped Italy get off to a good start, as it took a 17-9 lead in the opening set.
Italy then led 23-22 in the second set but the Bulgarians finished stronger and levelled the match on an error by Simone Papi.
Bulgaria's powerful spiking game helped it take an early lead in the third set, but Italy hung on before getting ahead 16-15. Savani eventually smashed a second set point to put Italy in command.
Follow Paul Logothetis on Twitter: http://twitter.com/PaulLogoAPSuggest a correction