Arshavin returns to Russia with Zenit
"Zenit and Arsenal have reached an agreement for Andrei Arshavin to play in St Petersburg until June 2012," Zenit said on their website.
The Russia captain said he was delighted.
"Friday was a very difficult day, nothing was decided until the very last minute," the 30-year-old told the Sport-Express.
"But I hope from now on everything is going to be fine. I want to play and will do all I can to help Zenit win the Russian title."
Arshavin is ineligible to play for Zenit in the Champions League having played for Arsenal in the same competition earlier in the season.
Earlier, the player announced the news on his official website.
"I have transferred to Zenit. On loan. The details tomorrow when you wake up," he said.
The transfer window closed in Russia on Friday.
Arsenal paid Zenit some 15 million pounds for Arshavin in January 2009.
After excelling for the first couple of years in London, Arshavin has struggled to break into the Premier League side's first team this season. His last game was on Tuesday when he played for Arsenal's reserve team, scoring twice in a 5-0 win over Norwich City.
Arshavin was hoping the move to his native city would help him regain his form of old ahead of the Euro 2012 finals.
In 2008, his last in Zenit's colours, he led them to the UEFA Cup title before helping Russia reach the Euro semi-finals later that year.