Elmore was drafted by the Arizona Diamondbacks in the 34th round, 1038th overall, of the 2008 Major League Baseball draft. After signing, Elmore made his professional debut with the rookie-level Missoula Osprey, slashing .296/.390/.464. In 2009, Elmore played for the Single-A South Bend Silver Hawks, posting a .258/.365/.351 slash line with 3 home runs and 38 RBI. The next year, he played for the Double-A Mobile BayBears, logging a .278/.374/.345 slash line with 2 home runs and 31 RBI. Elmore returned to Mobile for the 2011 season, playing in 121 games and batting .270/.362/.349 with 3 home runs and 41 RBI. In 2012, Elmore began the year with the Triple-A Reno Aces, hitting .344/.442/.465 with 1 home run and a career-high 73 RBI.[2]
Elmore was selected to the 40-man roster and promoted to the majors for the first time on August 11, 2012.[3] On August 16, 2012, he recorded his first career hit, and finished the game 2-for-4 with a double. Elmore finished his rookie season with a .191 batting average with 0 home runs, 7 runs batted in 30 games.
On August 19, 2013, Elmore became the 14th player in MLB history to catch and pitch in the same game.[6] After replacing Carlos Corporan as the catcher in the fourth inning of a game against the Texas Rangers, Elmore was again called upon in the eighth inning, but this time to pitch. He retired the Rangers in order on 11 pitches. Commenting on the feat, manager Bo Porter said, "Elmore should probably be in the icetub, icing every part of his body."[6]
Chicago White Sox
On November 20, 2013, Elmore was claimed off waivers by the Chicago White Sox.[7] The White Sox designated Elmore for assignment on February 26, 2014.[8]
Oakland Athletics
Elmore was traded to the Oakland Athletics on February 27, 2014.[9] Elmore was then optioned to the Triple-A Sacramento River Cats and spent the first two and a half months of the 2014 season on the DL due to a strained left quadriceps.[10][11] Oakland designated Elmore for assignment on July 31, 2014.[12]
Cincinnati Reds
On August 2, 2014, Elmore was claimed off waivers by the Cincinnati Reds, and sent to the Triple-A Louisville Bats.[13] On November 5, 2014, the Reds re-signed Elmore after outrighting him to Louisville on November 3.
Tampa Bay Rays
On November 7, 2014, Elmore was claimed off waivers by the Pittsburgh Pirates from the Reds.[14] The Pirates designated him for assignment on January 20, 2015.[15] He declined his outright assignment, became a free agent, and subsequently signed a minor league deal with the Tampa Bay Rays on February 9, 2015.[16] Elmore was called up to the Rays on April 22 due to injuries.[17] He split the year between the Triple-A Durham Bulls and Tampa Bay, slashing .206/.263/.284 with 4 RBI in 51 major league games. On November 6, 2015, he was outrighted off of the 40-man roster and elected free agency.[18]
Milwaukee Brewers
On December 14, 2015, Elmore signed a minor league deal with the Milwaukee Brewers. The Brewers purchased his contract from the Colorado Springs Sky Sox on June 28, 2016, and Elmore made his first start for Milwaukee that day at second base.[19] He appeared in 59 games for the Brewers, mostly as a pinch hitter. After hitting .218/.371/.244 on the season, Milwaukee chose to outright Elmore to Triple-A on October 28, 2016. Elmore rejected the assignment and opted for free agency.[20]
Toronto Blue Jays
On February 9, 2017, Elmore signed a minor league contract with the Toronto Blue Jays that included an invitation to spring training.[21] He was later assigned to the Triple-A Buffalo Bisons. In 94 games with Buffalo, Elmore batted .231/.321/.273 with 1 home run and 36 RBI.
Miami Marlins
On August 14, 2017, Elmore was traded to the Miami Marlins organization, and assigned to the Triple-A New Orleans Baby Cakes.[22] In 16 games for New Orleans, Elmore went 14-for-52 with 5 RBI. He elected free agency following the season on November 6.[23]
Chicago White Sox (second stint)
On February 8, 2018, Elmore signed a minor league contract with the Chicago White Sox organization.[24] He spent the season with the Triple-A Charlotte Knights, posting a .289/.397/.359 slash line with one home run and 27 RBI in 101 games. Elmore elected free agency following the season on November 2.[25] Elmore re-signed with the White Sox on a new minor league deal on January 14, 2019.[26]
Pittsburgh Pirates
Elmore was traded to the Pittsburgh Pirates on March 28, 2019, and was assigned to the Triple-A Indianapolis Indians.[27] His contract was selected by the Pirates on May 13.[28] After going 1-for-20 at the plate in just under two weeks with the Pirates, Elmore was designated for assignment on May 26.[29] He cleared waivers and was outrighted back to Triple-A three days later.[30] On September 17, the Pirates selected Elmore's contract and he hit .345 after being recalled. Elmore was outrighted off the Pirates roster on October 25 and elected free agency on October 31. Elmore resigned with the Pirates organization during the off-season but was released on June 9, 2020.[31]
Cleveland Indians
On July 3, 2020, Elmore signed a minor league deal with the Cleveland Indians organization.[32] He spent time at the alternate training site that was set up because of the COVID-19 pandemic. The Indians released Elmore on September 4, 2020.[33]
Philadelphia Phillies
On June 13, 2021, Elmore signed a minor league contract with the Philadelphia Phillies organization.[34] Elmore appeared in 15 games for the Triple-A Lehigh Valley IronPigs, hitting .225 with 0 home runs and 9 RBI's. On August 24, 2021, Elmore was released by the Phillies.[35]