Herrmann was drafted by the Baltimore Orioles in the 10th round of the 2008 Major League Baseball draft out of Alvin Community College, but he did not sign. He was then drafted by the Minnesota Twins in the sixth round of the 2009 Major League Baseball draft out of the University of Miami. Herrmann was called up to the majors for the first time on September 14, 2012. He played in 7 games, collecting a single and an RBI in 18 at bats. He hit his first Major League home run on June 2, 2013 off of Jeremy Bonderman against the Seattle Mariners. Herrmann played in a career high 57 games for the Twins in 2013, split almost evenly between catcher and outfield, hitting just.204 with 4 home runs and 18 RBIs. He displayed poor plate discipline, striking out 49 times in 157 at bats. In 2014 he batted.213 in 75 at bats, playing almost all his games in the outfield. In 2015, Herrmann batted.146/.214/.272, striking out 37 times in 103 at bats.
Arizona Diamondbacks
On November 10, 2015, Herrmann was traded to the Arizona Diamondbacks for Daniel Palka. In 2016, Herrmann hit a career high.284 in 56 games for the Diamondbacks. The following season, he served as a utility player for Arizona playing catcher, outfield, and first base, batting.181/.273/.345 and hitting 10 home runs with 27 RBIs in 106 games as he struck out 67 times in 226 at bats. Herrmann was designated for assignment on March 25, 2018, and released the following day.
Seattle Mariners
On April 7, 2018, Herrmann signed a minor league deal with the Seattle Mariners. He began the season in AAA and was called up by Seattle during the season, appearing in 36 games, batting.237 and striking out 24 times in 76 at bats. On defense, he caught 4 of 18 base-stealers.
Oakland Athletics
On November 2, 2018, Herrmann was claimed off waivers by the Houston Astros. He was non-tendered by the Astros on November 30 and became a free agent. On December 11, 2018, Herrmann signed a one year deal with the Oakland Athletics. On March 19, 2019, Herrmann was placed on the 60-day injured list to start the season, after undergoing arthroscopic surgery on his right knee on March 8th. He debuted on July 2 against his former team, the Minnesota Twins, hitting a grand slam en route to an 8-6 Athletics victory. In his second game for the A's on July 4, Herrmann went 4 for 4 and drove in a run. On September 10, Herrmann was designated for assignment. Herrmann elected free agency on September 13.
On January 13, 2020, Herrmann signed a minor league deal with the Tampa Bay Rays. Herrmann exercised his opt-out clause on July 18, 2020 and became a free agent.
San Francisco Giants
On July 25, 2020, Herrmann signed a minor league deal with the San Francisco Giants organization.