Gallagher was drafted by the Kansas City Royals in the second round of the 2011 MLB draft out of Manheim Township High School in Lancaster, Pennsylvania.[1][2] The Royals added him to their 40-man roster after the 2016 season.[3]
The Royals promoted Gallagher to the 25-man roster to replace the injured Salvador Pérez on August 6, 2017. He made his MLB debut the same day in the second game of a doubleheader against the Seattle Mariners, collecting his first MLB hit.[4] He hit his first MLB home run on August 14, 2017 against the Oakland Athletics, a grand slam.[5]
In 2018, Gallagher batted .206/.250/.302 for the Royals with 1 home run and 7 RBI in 63 at bats. Gallagher played in 45 contests in 2019, slashing .238/.312/.365 with career-highs in home runs (3) and RBI (12).[6]
On July 11, 2020, it was announced that Gallagher had tested positive for COVID-19.[7] Overall with the 2020 Kansas City Royals, Gallagher batted .283 with one home run and 3 RBIs in 25 games. In 2021, he batted .250/.298/.330 with one home run and 7 RBIs in 112 at bats.
On August 2, 2022, Gallagher was traded to the San Diego Padres in exchange for Brent Rooker.[8] In 16 games for the Triple–A El Paso Chihuahuas, he batted .255/.318/.382 with one home run and 10 RBI. On September 9, Gallagher was designated for assignment by San Diego.[9]
On September 11, 2022, Gallagher was claimed off waivers by the Baltimore Orioles.[10] He appeared in 5 games for the Triple-A Norfolk Tides, going 1-for-17 (.059) with 3 RBI and 3 walks. On November 8, Gallagher was removed from the 40-man roster and sent outright to Triple-A, however he rejected the assignment and elected free agency.[11]
On January 4, 2023, Gallagher signed a minor league contract with the Cleveland Guardians.[12] The deal included an invitation to the Guardians' 2023 major league spring training camp.[12]
The Guardians selected Gallagher's contract on March 30, 2023 after it was announced that he had made the Opening Day roster. In 56 games for Cleveland, he batted .126/.154/.168 with no home runs and 7 RBI. Following the season on November 6, Gallagher was designated for assignment following the waiver claim of Christian Bethancourt.[13] He elected free agency on November 10.[14]
On February 25, 2024, Gallagher signed a minor league contract with the Philadelphia Phillies.[15] He did not appear in a game for the organization after being placed on the restricted list to begin the season.[16] Gallagher was released by the Phillies organization on June 1.[17]