Roberto Mancini has been out of work since being sacked by Inter Milan.
The 53-year-old Italian has agreed a three-year deal with the option of a further two years and replaces Mircea Lucescu, who left the post three days ago.
Mancini becomes the second Italian to coach Zenit, after Luciano Spalletti, who won two league titles at the Petrovsky Stadium in 2010 and 2012.
"I'm very honored to have been chosen as their coach", he added.
And Zenit have now turned to Mancini, a former league victor in Italy with Inter Milan and England with Manchester City.
Zenit finished third in the Russian Premier League club and missed out on Champions League qualification.
Mancini comes in after the exit of Lucescu, who led Zenit to a third place finish and was eliminated in the last 32 of the Europa League.
Bernd Schuster, who lifted the 2007/08 La Liga trophy with Los Blancos, and Frank Rijkaard, who won five titles during his time at Barcelona, are two ex-players turned coaches who are also now without a job.