The 30 year-old midfielder has joined the Seville-based club on a three-year deal.
"I am very excited," Garcia said after Betis announced the deal.
"Betis were my first choice because the club is making a great effort to put a competitive team together."
The former Real Madrid and Manchester City man spent three years with Zenit, winning one Premier League title, two Super Cups and the Russian Cup.
He is the seventh permanent signing Betis has made in a hectic transfer window to date, following the arrivals of Jordi Amat and Antonio Barragan on loan.