Undrafted after his junior year of college, Johnson signed a free agent contract with the Tampa Bay Rays on June 24, 2010, after being noticed by a scout at a local American Legion exhibition game.[2] He played for the GCL Rays in 2010.[3] He was released by the Rays on April 20, 2011.[3]
Johnson was released by Arizona after the 2013 season, and again played for Traverse City to start the 2014 season. He signed a minor league contract with the Minnesota Twins on July 28, 2014 and remained in their system through the 2015 season.[3] He played for the Fort Myers Miracle and the Chattanooga Lookouts while with the Twins.[3]
He became a free agent after the 2016 season and signed a minor league contract with the Colorado Rockies on November 18, 2016.[5] He spent the 2017 season with the Hartford Yard Goats. Johnson spent the 2018 minor league season with the Albuquerque Isotopes.[5][3]
Johnson was called up to the major leagues for the first time on September 4, 2018 and made he debut five days later on September 9.[6]
In 2019, Johnson made the Rockies opening day roster.[7] Johnson was released by the Rockies on October 23, 2019 to seek an opportunity in Japan.[8]
On February 2, 2021, Johnson was signed by the Cleveland Indians to a minor league contract.[12] He began the 2021 season with the Columbus Clippers, the Indians' Triple-A affiliate.
On July 7, 2021, Johnson was selected to the 40-man roster and added to the Indians’ active roster.[14]
Tampa Bay Rays (second stint)
On July 30, 2021, Johnson was traded to the Tampa Bay Rays along with Jordan Luplow in exchange for Peyton Battenfield.[15] On August 16, Johnson was placed on the 60-day injured list with a sprained right shoulder, with manager Kevin Cash noting that he would miss "significant time."[16] On November 5, 2021, Johnson was outrighted off of the 40-man roster and elected free agency.[17]
Leones de Yucatán
On January 11, 2024, after two years of inactivity, Johnson signed with the Leones de Yucatán of the Mexican League.[18] However, he was released prior to the start of the LMB season on April 1.[19]
Personal life
After the 2016 season, Johnson was not offered a contract by the Angels, and he worked at a lumber yard that offseason before being signed by the Rockies.[5]