When the MLB rosters expanded on September 1, 2010, Espinosa was called up to the MLB for the first time. He appeared in his first MLB game that night. In his first MLB at bat, he hit a ground ball to second base that took an odd hop and went into right field, allowing Espinosa to turn it into a double when he saw that the right fielder had not charged the ball. On September 6, 2010 against the New York Mets, in his first MLB game at Nationals Park, Espinosa went 4 for 5, with two home runs including a grand slam and six runs batted in. Espinosa played in the Puerto Rican winter league after the 2010 season. Espinosa had a productive 2011 season, hitting 21 home runs and stealing 17 bases. He finished 6th in the National League Rookie of the Year balloting. He was also hit by a pitch 19 times, tied for first with Justin Upton. Espinosa began the 2012 season in an extended slump, hitting.205 in April with 2 runs batted in. He rebounded after the All-Star break, hitting.300 in July. Espinosa finished the 2012 season leading the National league in strikeouts with 189. He hit 17 home runs while also stealing 20 bases. Espinosa began the 2013 season with another slump, hitting.171 through mid-May. He was consequently sent down to the AAA club at Syracuse and batted.216 with 2 home runs, 22 runs batted in, and 6 stolen bases over 75 games for the rest of his season in the minors. In April 2014 he added another 3 home-run to his baseball career along with.291 in batting and.831 on-base plus slugging. He batted.158/.193/.272 in 158 at bats. The following two seasons, Espinosa was a utility player for the Nationals, playing all the infield positions and left field. In 2016, he was named the starting shortstop for the Nationals and played the whole season only at shortstop. He set career highs in home runs with 24 and runs batted in with 72, and was third in the majors in hit by pitches with 20. But his.209 batting average was the lowest of all qualified major league batters.
Los Angeles Angels
After the 2016 season, the Nationals acquired outfielder Adam Eaton, with the intent of moving Trea Turner to shortstop. The Nationals then traded Espinosa to the Los Angeles Angels for pitchers Austin Adams and Kyle McGowin on December 10, 2016. Espinosa's first hit as an Angel was a big three-run home run in the ninth inning that put Los Angeles ahead, 7-6, in his second game with the team. The Angels closed out the win in the bottom of the ninth, making Espinosa's home run the game-winning hit. In his lone season with the team, Espinosa struggled offensively through the first half of the season, hitting under.170 in 75 games. On July 16, Espinosa was designated for assignment. He was released on July 22. He batted.162/.237/.276 in 228 at bats.
Seattle Mariners
He signed a major league contract with the Seattle Mariners on July 23, 2017. He batted.188/.235/.313 in 16 at bats. He was released on August 20.
Tampa Bay Rays
On August 25, 2017, Espinosa signed a major league contract with the Tampa Bay Rays. He batted.273/.333/.273 in 22 at bats. He was outrighted by the Rays on September 25 to make room for the 40-man roster.
On March 17, 2018, Espinosa signed a minor league contract with the Toronto Blue Jays and was invited to spring training. He was released on April 29, 2018.
Espinosa signed a minor league deal with the Los Angeles Dodgers on May 6, 2018. He was assigned to the AAA Oklahoma City Dodgers, where he had nine hits in 60 at-bats before he was released on May 30, 2018.
On June 22, 2018, Espinosa signed a minor league contract with the Philadelphia Phillies. He was released on August 8, 2018.
Acereros de Monclova
On August 14, 2018, Espinosa signed with the Acereros de Monclova of the Mexican League.
New York Mets
On February 8, 2019, Espinosa signed a minor league contract with the New York Mets that included an invitation to spring training. He returned to Syracuse and appeared on their Opening Day roster, alongside a number of other veteran players. He became a free agent following the 2019 season.
Acereros de Monclova (second stint)
On February 29, 2020, Espinosa signed with the Acereros de Monclova of the Mexican League.