[5][6] The Washington Nationals selected Espinosa in the third round, with the 87th overall pick, of the 2008 Major League Baseball draft.
[7] Espinosa made his professional debut with the Vermont Lake Monsters of the Low–A New York-Penn League, where he batted .328.
[citation needed] When the MLB rosters expanded on September 1, 2010, Espinosa was called up to the major leagues for the first time.
[13] Espinosa began the 2012 season in an extended slump, hitting .205 in April with 2 runs batted in.
[17] The following two seasons, Espinosa was a utility player for the Nationals, playing all the infield positions and left field.
[18] He was named National League Player of the Week in early July for a five-homer, 17-RBI performance.
[19] He finished the season with a career-high 24 home runs and 72 RBI, but his .209 batting average was the lowest of all qualified major league batters.
[20] After the 2016 season, the Nationals acquired outfielder Adam Eaton, with the intent of moving Trea Turner to shortstop.
The Angels closed out the win in the bottom of the ninth, making Espinosa's home run the game-winning hit.
[30] On March 17, 2018, Espinosa signed a minor league contract with the Toronto Blue Jays that included an invitation to spring training.
[34] In 31 games for the Triple–A Lehigh Valley IronPigs, he slashed .200/.234/.352 with four home runs, 14 RBI, and three stolen bases.
On February 8, 2019, Espinosa signed a minor league contract with the New York Mets that included an invitation to spring training.
[36] He did not make the team and was assigned to the Triple–A Syracuse Mets, appearing on their Opening Day roster alongside a number of other veteran players.
[37] In 129 games for the Triple–A Syracuse Mets, Espinosa batted .256/.338/.440 with 20 home runs, 84 RBI, and 17 stolen bases.