He was signed as an undrafted free agent at age 18 by the Detroit Tigers in. In the minor leagues, Hernández showed poor patience and high strikeouts typical of a teenager and did not rise past single-A until. In his first season, he batted.264/.303/.389 with 34 stolen bases in just 216 at-bats. However, he progressed slowly. In, playing in High-A ball, he showed poor hitting skills, batting just.259/.310/.339. The next season was even worse. Hernandez struggled to hit above the Mendoza line, and stole just 15 bases. But the next season started off well for him. After batting.295 with 11 RBI in about 100 AB, he was called up to Double-A Erie where he batted.274 with 5 home runs, 29 RBI, and 17 stolen bases. In January 2005, Hernández was traded to the New York Mets for catcherVance Wilson. game in 2007.
New York Mets
In January 2005, Hernández was traded to the New York Mets for catcher Vance Wilson. With the Mets out of playoff contention in and Hernández hitting over.300 in both Double-A and Triple-A, he was called up to the majors in mid-September but went 0-for-14 before finally getting his first hit, off Colorado Rockies pitcher Aaron Cook, in the last game of the season, going 1–4. Due to the knee injury of Kazuo Matsui, Hernández was the starting second baseman for the Mets to start the season, but he too was soon injured and placed on the 15-day DL. He returned later in the season and hit his first Major League home run on September 19, 2006, off Florida Marlins pitcher Scott Olsen. He is widely known to Mets fans for pinch-running for Paul LoDuca in the bottom of the ninth inning in Game 7 of the 2006 NLCS against the St. Louis Cardinals, representing the winning run with two out, but Carlos Beltránstruck out to end the game. In 2007, he made many appearances as a pinch-runner or a late inning defensive replacement, as he only collected three at-bats and went 1–3. On August 20,, Hernández was dealt to the Washington Nationals as a player to be named later for relief pitcherLuis Ayala.
Washington Nationals
On August 20,, Hernández was dealt to the Washington Nationals as a player to be named later for relief pitcher Luis Ayala. He was the starter at second for the Nationals. On August 6, 2009, Hernández was traded back to the Mets for minor league infielder Greg Veloz.
Return to the Mets
Hernández was traded back to the Mets on August 6, 2009, for minor league infielder Greg Veloz. On March 17, 2010, Hernández was claimed off waivers by the Cleveland Indians.
Cleveland Indians
On March 17, 2010, Hernández was claimed off waivers by the Cleveland Indians. He was assigned to Triple-A Columbus on April 8. On June 8, 2010, the Indians purchased Hernández's contract and placed him on the active roster. Hernández had the opportunity to compete for the starting second baseman position, but lost to Jayson Nix; he was subsequently used in a utility infielder role. On July 18, 2010, Hernández was designated for assignment to make room on the active roster for pitcher Jeanmar Gómez. Hernández was claimed off waivers by the Houston Astros on July 21, 2010.
Houston Astros
Hernández was claimed off waivers by the Houston Astros on July 21, 2010. He was added to the 25-man roster on July 22, 2010. Hernández became a free agent after the 2010 season. He re-signed with the Astros in November 2010.
Hernández currently has played in his native country, the Dominican Republic, for Tigres del Licey. He won the Rookie of the Year in the regular season and also the MVP during the finals. He and shortstop Erick Aybar are called "los menores" and were known as one of the best middle infields in the Dominican Republic.
Chunichi Dragons
On December 12, 2013, Hernandez was unveiled by the Chunichi Dragons in the NPB as a new signing ahead of their 2014 campaign. On 29 October, 2016, it was confirmed that Hernandez would be released from the Dragons along with Ricardo Nanita, Juan Jaime, Drew Naylor and Leyson Septimo.