Flores was signed by the New York Mets as an amateur free agent on March 12, 2002. In parts of three minor league seasons, Flores hit .257 (230-for-895) with 33 home runs and 140 RBI in 250 games played. In 2004 he made the Gulf Coast League All-Star team.
In 2006 he had a terrific minor league season with the Mets' A+ team, St. Lucie. By the end of the season, he was rated by Baseball America as the Mets top catching prospect after hitting .266 with a .335 on-base percentage and a .487 slugging average. He also hit 32 doubles and tied for the Florida State League lead with 21 home runs, making the Florida State League Mid-Season and Post-Season All-Star teams.
Flores, never having played above A-ball, was obtained by the Washington Nationals in the 2006 Rule 5 draft on December 7, 2006.
His major league debut with Washington was on April 4, 2007, and his first start on April 19. Three days later, on April 19, he made his second start, and collected his first hits: he went 2-for-3 with a walk, two doubles and two RBIs. On September 4, 2007, Flores hit a 2 RBI, walk-off single to beat the Florida Marlins.
During the 2007–08 offseason, he played for Navegantes del Magallanes in the Venezuelan Professional Baseball League.
As the 2008 season opened, Flores was the starting catcher for the Nationals. His season would be over on September 3, 2008 after being injured on a collision with Chase Utley when Utley attempted to steal home.
On July 20, 2008, Flores collected five hits, all singles, in a 15–6 Nationals victory over the Atlanta Braves.
After 26 games in 2009, Flores was placed on the disabled list with a stress fracture in his shoulder. General Manager Mike Rizzo indicated that he would be out a minimum of three months, and possibly for the rest of the season. He wound up missing the entire 2010 season due to the injury and returned to play 30 games in 2011 and 83 games in 2012.
On January 16, 2013, Flores and the Los Angeles Dodgers agreed to a minor league deal with an invite to spring training. The Dodgers assigned him to the AAA Albuquerque Isotopes. In 22 games for the Isotopes, he hit only .164. He was released on May 23.
He was signed to a minor league contract by the Tampa Bay Rays on June 4, 2013.
Flores was signed to a minor league contract by the Kansas City Royals on March 2, 2014. He was released on July 23, 2014.
On January 30, 2015, Flores signed a minor league deal with the Atlanta Braves, that included an invitation to spring training. He was released on April 3.
On May 2nd, the Marlins announced that they had signed Flores to a minor league deal.