He then joined Mexican Monterrey in the middle of 2002, and made his debut during the 2002 Apertura. Franco was very successful with the Rayados, and led the league in scoring during the 2004 Apertura with 15 goals in 16 games, playing as a striker. He was part of the team that won the Primera División de México championship in 2003 and achieved runner-up position twice in 2004 and 2005.
Villareal
Subsequently, Franco spent three years in Spain playing for Villarreal, but his spell was plagued with injuries. In his first season, Franco helped Villareal reach the semifinal of the UEFA Champions League where they lost to Arsenal. Franco also scored a goal that qualified Villarreal for the UEFA Cup, in a 1–0 victory against Celta de Vigo.
In September 2009, Franco signed for West Ham United on a one-year contract, becoming the first Mexican to play for the Hammers. On 25 September, it was disclosed that due to West Ham's perilous financial situation following former chairman Björgólfur Guðmundsson's financial collapse, West Ham's CEO Scott Duxbury, and their Sporting and Football Technical Director Gianluca Nani, had part financed the deal from their own salaries. Franco made his debut for West Ham on 17 October2009 in a 2–1 away defeat to Stoke City. He scored his first goal for the team on 31 October 2009 to put them 1–0 up against Sunderlandaway from home, in a game that finished 2–2. Franco became the third Mexican player to score in the Premier League, Jared Borgetti and Carlos Vela being the first and second respectively. On 24 April 2010, Franco assisted Scott Parker, who scored for the winner in a 3–2 victory against Wigan Athletic; a win which would see them safe from relegation. In May, despite his wish to stay at the club, it was announced that West Ham had released Franco.
The striker then spent one semester as a free agent, until he joined Vélez Sársfield back in Argentina in January 2011. He signed a one-year deal, and made his debut coming on as a second-half substitute for Santiago Silva in a 2–2 draw at Independiente in the first fixture of the 2011 Clausura. Subsequently, he played the starting minutes of the Copa Libertadores debut against Caracas FC, suffering a shoulder injury that left him out for the remainder of the season. Having played less than 30 minutes, he offered the club to terminate his contract, or suspend his salary until he recovered, though Vélez rejected it. He returned for the 2011 Copa Libertadores quarter-finals, entering the field and scoring one goal from a penalty in a 4–2 victory over Libertad. He also played the last 5 games of the 2011 Clausura, helping his team win the Argentine league title.
Franco signed with Major League Soccer club Chicago Fire on 14 September 2012. On 21 January 2013 the club announced Franco's contract option was not picked up for the new season. On 29 January 2013, Franco announced his retirement from football.