The Portuguese had been out of work since being dismissed at White Hart Lane before Christmas and replaces Italian Luciano Spalletti, who was sacked last week.
Zenit travel to Borussia Dortmund on Wednesday night looking to overturn a 4-2 first-leg deficit in their last-16 Champions League tie but Villas-Boas will not officially take the reins at the Petrovsky Stadium until Thursday.
"Zenit has agreed terms on a contract with new head coach Andre Villas-Boas," read a statement on the Russian club's official website.
"The contract will be signed and Mr. Villas-Boas will be presented in St Petersburg as Zenit's new head coach on March 20.
"Mr. Villas-Boas' contract begins in March, 2014, and is valid for two seasons."
The 36-year-old had a brief spell as manager of the British Virgin Islands but first came to prominence at Academica in his native Portugal, earning himself a move to Porto.
In a single season with the two-time European Cup winners, Villas-Boas won the Europa League and claimed the Portuguese top flight as he guided his team to an undefeated league campaign.
That success led to a move to Chelsea to replace Carlo Ancelotti but it was an unhappy spell at Stamford Bridge and Villas-Boas was relieved of his duties after just eight months before moving to Spurs in July 2012.
He enjoyed a successful first season at White Hart Lane but a huge shake-up the following summer, including the world-record sale of Gareth Bale to Real Madrid and various high-profile additions, did not have the desired effect and he left his post on December 16.
Villas-Boas will now return to the dugout in Russia where he will be reunited with former Porto striker Hulk.
Zenit sit second in the Russian Premier League, three points behind Lokomotiv Moscow, and Villas-Boas' first game in charge will be on Monday against Krylya Sovetov.