Houston also signed punter Matt Turk to replace Brett Hartmann, who went on injured reserve this week.
Garcia, 41, has played in only one NFL game since the 2008 season. He threw three passes for Philadelphia during a 2009 contest after having spent a decade in the league with San Francisco, Cleveland, Detroit, Tampa Bay and the Eagles.
Houston, which owns a two-game lead in the AFC South, has lost starting quarterback Matt Schaub with a foot injury and backup Matt Leinart with a fractured shoulder during the last month. Both are out for the season.
The Texans won last week with rookie T.J. Yates as their starter.
Veteran Jake Delhomme has already been signed as a backup to Yates. Garcia was signed after holding two workouts with the Texans.
Turk, 43, punted in five games with Jacksonville this season and has played in the NFL since 1995.