They also signed 43-year-old punter Matt Turk to replace Brett Hartmann, who had been placed on injured reserve. They announced the signings on Wednesday.
Garcia, who last appeared in an NFL game with the Eagles in 2009, joins fellow veteran Jake Delhomme on the depth chart behind rookie starter T.J. Yates.
He worked out for Houston twice in the past two weeks, but the Texans originally went with Kellen Clemens, who was signed two weeks ago and released on Tuesday.
The Texans, of course, have lost two quarterbacks in the last few weeks. Matt Schaub was placed on injured reserve with a foot injury and Matt Leinart was lost after he fractured his throwing shoulder in his first start since 2009.
Garcia played 11 seasons between 1999-2009, including five with the 49ers. He has passed for 25,537 yards with 161 touchdowns and 83 interceptions in 125 career games.
He played for the UFL's Omaha Nighthawks last year.
Turk punted in five games for the Jaguars this season and has played in the NFL since 1995.