Petrov has not been a regular starter during his third season with Wanderers despite scoring three times in 16 appearances.
Espanyol confirmed the move on Monday evening via their official website, saying: "Martin Petrov has signed for RCD Espanyol after reaching relevant agreement between both parties.
"Petrov, ex-Bolton player, has signed with our Club until 30th June 2013.
"He will practice this afternoon with his new team mates and later on he will be presented at Sant Adrià de Besòs training facilities."
The 33-year-old Bulgaria winger previously played in Spain for Atletico Madrid before his move to Manchester City in summer 2007.
"We feel as a club and I feel as a coach that it's the right move," said manager Dougie Freedman.
"Martin obviously wants to play. He's on a fantastic wage at this club and one that I feel that we can (use to) make room for another player.
"He's done nothing wrong. He's been a good lad and a good servant to the club. I just feel we're going in a different direction."