Peña signed with the New York Mets as an international free agent in 2007, receiving a $750,000 signing bonus. He made his professional debut with the Savannah Sand Gnats of the Class ASouth Atlantic League, where in 103 games, he hit.210 with five home runs, and 30 runs batted in. Peña also spent the 2008 season with the Sand Gnats, where in 105 games, he hit.264 with six home runs, 41 RBIs, and 22 doubles. He was named to the SAL All-Star Game as a backup catcher to Jesús Montero. Peña played 2009 with the St. Lucie Mets of the Class A-AdvancedFlorida State League, where in 100 games, he hit.224 with eight home runs and 44 RBIs. He was named to the FSL All-Star Game as a backup catcher for Austin Romine. He missed most of 2010 with a broken foot. He made his debut on August 14 in a 10-game rehab assignment in the Gulf Coast League, and on August 26, he returned to St. Lucie, appearing in 10 more games. Peña played 2011 with St. Lucie, where in 95 games, he hit.223 with five home runs and 37 RBIs. Peña began his fourth season with St. Lucie in 2012. In 41 games with St. Lucie, he hit.254 with four home runs and 22 RBIs. On June 21, he was promoted to the Binghamton Mets of the Class AAEastern League, where in 40 games, he hit.198 with three home runs and 17 RBIs. He also threw out a career high 45% of would-be base stealers. Peña began 2013 with Binghamton, where he hit.246 in 21 games before earning a promotion to the Las Vegas 51s of the Class AAAPacific Coast League on May 18. In 68 games with the 51s, he hit.257 with nine home runs and 39 RBIs. After the season, he became a minor league free agent.
On November 17, 2013, Peña signed with the Kansas City Royals, who added him to their 40-man roster. He competed for a role as a backup catcher to Salvador Pérez. He made his major league debut in May 2014, appearing in one game. He rejoined the Royals in September, but did not appear in a game. After starting the 2015 season in the minor leagues, the Royals promoted Peña to the major leagues on May 6, when Erik Kratz was placed on the disabled list. In 8 Major Leagues games, he has a.143 batting average. The Royals finished the year with a 95-67 record and eventually won the 2015 World Series, their first championship in 30 years. Peña did not play in any postseason games but was in the victory parade. He was designated for assignment on December 2, 2015.
Baltimore Orioles
On the same day he was designated for assignment by the Royals, Peña was traded to the Baltimore Orioles for cash considerations. He played in 24 games for the Norfolk Tides of the Class AAA International League, before he was promoted to the major leagues on May 31, 2016, while Orioles backup catcher Caleb Joseph went on the disabled list. On June 2, 2016, Peña started and debuted for the Orioles. He went 2 for 4 with 2 RBI and hit his first major leaguehome run to help the Orioles defeat the Red Sox 12-7. Peña ended his 2016 season with a.200 batting average. On February 10, 2017, Peña was designated for assignment. On May 2, 2017 he was recalled from AAA Norfolk to replace the injured Welington Castillo. Peña was designated for assignment for the third time in 2017 on June 10. He elected free agency on October 3, 2017.
St. Louis Cardinals
On December 13, 2017, Pena signed a minor league contract with the St. Louis Cardinals. He made the active roster as the backup catcher, from a NRI in Spring Training, on March 23, 2018, and will make-up a four-man bench. He elected free agency on November 3, 2018. On December 1, 2018 it was incorrectly reported that the Cardinals resigned Peña to a minor league contract with an invitation to spring training. This was due to an error on the date of a story reporting the previous year contract.