The 55 year-old Italian was dismissed after the club's disappointing 0-0 draw at home to Tom Tomsk on Sunday allowed Lokomotiv Moscow to replace them at the top of the Russian Premier League.
Former Russia captain Sergei Semak has been placed in temporary charge.
"We would like to thank Luciano Spalletti for everything that he has done to develop football and we will always be glad to see him in St Petersburg. Grazie, Mister," the club said in a statement.
Former AS Roman and Udinese boss Spalletti took charge in December 2009 and led the side from Russia's second city to two Premier League titles and one Russian Cup during his tenure and was named Russian coach of the season in 2010 and 2012 season.
However, the club's hierarchy decided to change their manager, whose contract ran until 2015, with 10 league matches remaining.
Zenit saw their hopes of progressing to the quarter-finals of the Champions League for the first time in their history all but disappear following a 4-2 first leg home loss to Dortmund last month. The return leg in Germany takes place on March 19.
Semak has been handed his first head coach position and the 38 year-old's first game in temporary charge will be against CSKA Moscow on Saturday before they fly to Germany.
Semak spent a decade playing with CSKA Moscow, before joining Paris St Germain in 2004. He later had spells with FC Moscow and Rubin Kazan, before finishing his career with Zenit in May and then joining Spalletti's coaching staff.
- Sports & Recreation
- Luciano Spalletti
- Lokomotiv Moscow
- Russian Premier League
- Sergei Semak
- Tom Tomsk