The experienced midfielder has made the decision to leave the treble winners for the Russian giants as he returns to familiar grounds
Luciano Spalletti was keen to add some more experience to his squad ahead of next season and the Zenit coach sees the 34-year-old Ukrainian as the ideal addition.
Tymoshchuk previously wore the Zenit jersey from 2007 until 2009 before making the move to Bayern.
The midfielder had since made 132 official appearances for the Bavarians, winning two Bundesliga titles, two DFB-Pokals and the Champions League in the process.
His contract with Bayern expires at the end of this season and he has made the decision to return to the club where he won the Uefa Cup in 2007-08.
Tymoshchuk started his professional career at Volyn Lutsk and also wore the Shakhtar Donetsk jersey before joining Zenit in 2007 for his first spell at the club.