He went to Washington State University in 1989, and started as a redshirt freshman, contributing 1,591 yards and 11 touchdown passes, leading the Pac-10 in passing efficiency that year. During that year, quarterbacking duties also were shared by junior Brad Gossen, who threw for 1,372 yards and nine touchdowns in an injury shortened season, prior to Garcia being named the starter. In 1990, a mid-season quarterback controversy erupted when second-year coach Mike Price benched veterans Gossen and Garcia in favor of true-freshman Drew Bledsoe.
After Bledsoe's emergence at Washington State in 1990, Garcia transferred to Sacramento State in Division I-AA and finished his college football career as the starter there, throwing for 1,798 yards and 13 touchdowns in his senior season.
He played for the Red Dogs for a year and a half before joining the Iowa Barnstormers during the 1998 season. Garcia finally settled down in Iowa, and found his greatest success when the Barnstormers became the New York Dragons in 2001. In the 2001 season, Garcia threw a league record 104 touchdown passes, but this was passed by Clint Dolezel in 2006.
On February 26, 2006, Garcia suffered a fractured tibia and fibula, ending his season. He was replaced by Juston Wood and later Nick Browder. At the time of the injury, Garcia had thrown more touchdown passes than any pro quarterback, however, Andy Kelly and Clint Dolezel moved ahead of Garcia while he was injured.
On June 2, 2007, Garcia became the fourth quarterback in AFL history to throw 800 touchdowns, joining Dolezel, Sherdrick Bonner, and Kelly.
In 2008, Garcia led the Dragons to the playoffs despite finishing the season with an 8-8 record. In the first round playoff game, Garcia and the Dragons defeated a heavily favored Dallas Desperados team who finished the year at 12-4. Garcia and Dolezel squared off at quarterback against each other, and Garcia out dueled Dolezel throwing nine touchdown passes to Dolezel's seven. The following week, New York lost on the final play of the game to the Philadelphia Soul, who would go on to win ArenaBowl XXII.
The Arena Football League suspended operations in 2009. On January 21, 2010, Garcia signed with the expansion Jacksonville Sharks when the Arena Football League reformed in 2010. On May 1, 2010, Garcia threw his 900th touchdown pass to Sale' Key in a 62-60 win over the Tulsa Talons. On June 5, 2010, Garcia became the all-time leader in passing touchdowns in Arena Football history, with 932 touchdown passes thrown. On April 30, 2011, Garcia connected with Jeron Harvey for his 1,000th career touchdown pass. Jacksonville Sharks went on to beat in-state rival Orlando Predators 76-55. On July 22, 2011, Garcia became the first AFL quarterback to cross the 50,000th yard milestone in a 75-56 victory over the Spokane Shock. On August 12, 2011, with two seconds remaining in the 4th quarter, Garcia threw the winning touchdown pass as time expired in ArenaBowl XXIV to win his first Arena Bowl title for the Jacksonville Sharks.
On September 27, 2011, Garcia was officially announced as the first player to sign with the relocated San Antonio Talons franchise. On March 29, 2012, Garcia was strip sacked on the six yard line but was able to recover the ball and go into the end zone for a fumble recovery score in a 47-34 road victory over the Orlando Predators. Garica lead the Talons to a 14-4 record, and a Central Division Championship. With the top seed in the National Conference, the Talons were upset 35-34 by the Utah Blaze after Garcia was sacked on 4th and goal with 2:50 remaining in the game. After the 2012 season, the Talons offered a contract to Garcia, but Garcia decided to sign elsewhere.
On November 8, 2012, Garcia signed with the San Jose Sabercats. On April 22, 2013, after a slow start to the 2013 season (98 for 159, 24 TD's and 13 INT's) the SaberCats announced that they have been assigned former Chicago Rush quarterback Russ Michna on a two-year contract. The SaberCats then placed Garcia on recallable reassignment to make room on the 24-man roster.