Spalletti was fired in the wake of a goalless Russian Premier League home draw against strugglers Tom Tomsk.
Zenit have won just one of their last six league matches and have dropped to second in the table, two points behind Lokomotiv Moscow and face elimination from the UEFA Champions League after a 4-2 last 16 first leg defeat to Borussia Dortmund at the Petrovsky Stadium.
"We wish to thank Luciano Spalletti for all that he's done for the development of St. Petersburg football," a club statement read. "We will always be happy to see him in St. Petersburg! Grazie, Mister!
Spalletti joined Zenit in December 2009 and won two Russian Premier League titles at the club, adding success in the Russian Cup and Russian Super Cup.
Two key figures have left Zenit over the last year, with Russia captain Roman Shirokov and ex-Russia skipper Igor Denisov both departing after reported clashes with Spalletti.
The 55-year-old Italian, who has previously managed Roma and Udinese, will be replaced by former player Sergei Semak.
Semak, 38, was a player under Spalletti for both the 2010 and 2011 title-winning seasons.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.