González was signed as an undrafted free agent by the Arizona Diamondbacks on August 3, 2002. He spent his first three years in the minors, playing for the Single-A South Bend Silver Hawks in 2004 and 2005, and the Double-A Tennessee Smokies and Triple-A Tucson Sidewinders in 2006. On January 5, 2007, he was traded with pitchers Luis Vizcaíno, Ross Ohlendorf, and Steven Jackson to the New York Yankees for Randy Johnson. González began the 2007 season with the Triple-A Scranton/Wilkes-Barre Yankees, but was demoted to the Trenton Thunder after struggling.
The Yankees called up González on September 1, 2007, as part of the September expanded rosters. He made his major league debut that day as a defensive replacement. On September 8, 2007, he got his first RBI by grounding into a fielder's choice and later scored his first run. On April 9, 2008, González was called up to provide back-up for injured Derek Jeter. He took the roster spot of Shelley Duncan.
On July 31, 2008, González was traded to the Washington Nationals for minor league right-handed pitcher Jhonny Núñez. He spent the whole of his three years in Washington as a reserve infielder.
On March 28, 2011, González was traded to the San Diego Padres for minor league pitcher Erik Davis and cash considerations. He was released on November 17.
The Texas Rangers signed González to a minor league contract on December 9, 2011. He also received an invitation to spring training; as a result of his performance during spring training he was added to the major league roster as a backup infielder. González was designated for assignment on August 10, 2012 to make room for Mark Lowe on the active roster.
In October 2012, González elected minor league free agency. In 24 games with the Rangers, González hit .241/.241/.315 with 4 RBI and 7 runs.
On November 21, 2012, González signed a minor league deal with the Chicago Cubs including an invite to spring training. He made the opening day roster. He was designated for assignment on April 19, 2013.
On May 10, 2013, González was traded by the Cubs back to the New York Yankees in return for cash considerations or a player to be named later. He was initially assigned to Triple-A when acquired, but was called up on May 12 when Eduardo Núñez went on the disabled list. On May 15, 2013, Gonzalez pitched for the first time on the mound in the top of the 9th inning against the Seattle Mariners getting the 3rd out with a fly out. Gonzalez was designated for assignment on May 18 after the Yankees acquired Reid Brignac, and recalled again on June 21 after Brignac was designated for assignment.
On December 2, 2013, González was signed to a minor league contract with the San Diego Padres. He was released on April 23.
On June 29, 2015 González signed a minor-league deal with the Detroit Tigers, and he was assigned to Double A Erie SeaWolves. On December 23, 2015, the Tigers re-signed González to a minor league contract. He was released on June 2, 2016.
On June 7, 2016, Gonzalez signed with the Guerreros de Oaxaca of the Mexican Baseball League. He was released on September 23, 2016.