College After starting at Knox College and then
Manchester High School in
Mandeville, Jamaica, Johnson moved to the United States and enrolled at
Virginia Commonwealth University in 2010 to play
college soccer. In his first with the
Rams, Johnson made 19 appearances and finished tied for second on the team with four goals and three assists. He was also named Third Team All-
CAA and CAA All-Rookie Team honoree. In his sophomore year in 2011, Johnson made 20 appearances and finished with a team leading 11 goals and one assist on his way to being named
NSCAA All-Region third team and All-CAA second team. In 2012, Johnson made 21 appearances and led his team in goals scored with 13 and second on the team in assists with six on his way to being named
Atlantic 10's Offensive Player of the Year, First Team All-Atlantic 10 and NSCAA Mid-Atlantic All-Region Team.
Professional Houston Dynamo On January 3, 2013, Johnson signed a
Generation Adidas contract with
Major League Soccer, making him eligible for the
2013 MLS SuperDraft. A couple weeks later, Johnson was selected 13th overall in the draft by
Houston Dynamo. On March 13, Johnson made his Dynamo debut, coming off the bench in a 3–0 loss to
Santos Laguna in leg 2 of the
2012–13 CONCACAF Champions League quarterfinals. He made his MLS debut on May 8, coming on as a substitute in a 4–0 win over
D.C. United. On September 8, Johnson scored his first goal for the Dynamo in a 4–1 loss to the
New York Red Bulls. Johnson made one substitute appearance in the playoffs for the Dynamo, coming off the bench in a 2–1 loss to
Sporting Kansas City in leg 2 of the
Eastern Conference Finals. Although he started the 2015 season in Houston, Johnson did not play in any of Houston's first six games before being traded.
Chicago Fire On April 13, 2015, Houston traded Johnson to the
Chicago Fire for midfielder
Alex. Johnson made his Fire debut on May 9, 2015, when he entered as an 84th minute sub in a 2–1 loss against visiting
Real Salt Lake. He scored his first goal for Chicago on May 22, scoring in the 90+4th minute to give the Fire a 2–2 draw with the
Columbus Crew. On July 11, Johnson scored 2 minutes into stoppage time to give Chicago a 1–1 victory against
Seattle Sounders FC. Following the 2015 season, Johnson had his contract option declined by Chicago.
San Antonio FC On February 16, 2016, Johnson signed with
USL side
San Antonio FC. On April 3, Johnson scored twice in his San Antonio debut to help defeat
Seattle Sounders FC 2 3–0.
Phoenix Rising On November 15, 2016, Johnson reunited with manager
Frank Yallop, who was his coach in Chicago, at
Phoenix Rising FC for the 2017 season. He made his debut for Phoenix on March 25 in a 1–0 loss to
Toronto FC II. He scored his first goal for Phoenix on May 13 in a 2–1 win over
OKC Energy. On July 15, Johnson scored twice to give Phoenix a 2–1 win over the
Colorado Springs Switchbacks. On October 4, Johnson scored twice in a 4–3 victory against the
Tulsa Roughnecks. He ended the regular season with 13 goals and 3 assists from 29 appearances as Phoenix finished 5th in the
Western Conference. In the playoffs, Johnson and Phoenix lost on penalties to
Swope Park Rangers in the first round. Johnson had 7 goals and 2 assists in 29 regular season games, helping Phoenix finish 3rd in the Western Conference. In the playoffs, he scored twice in 4 games as Phoenix reached the final, where they lost 1–0 to
Louisville City. In early May, it was announced that Johnson would be out for over 4 months due to an injury. He returned to the field on September 7, coming off the bench in a 1–0 win against San Antonio. He appeared off the bench in both of Phoenix's playoff games. He made his debut for Louisville on August 8, coming on as a substitute in a 1–1 draw with
Indy Eleven. he scored his first goal for Louisville on September 12 in a 3–0 win over
Saint Louis FC. During a shortened regular season due to the
COVID-19 pandemic, Johnson made 6 appearances and scored 1 goal.
FC Tulsa On August 2, 2021, Johnson was transferred to USL Championship side
FC Tulsa.
Monterey Bay On July 1, 2022, Johnson signed with
Monterey Bay as a free agent. Johnson earned his first start for Monterey Bay on July 30, 2022, during a 1–0 victory over
Loudoun United FC. His contract option was declined by the club at the end of the season. After overcoming injuries and having a healthy preseason, Johnson was re-signed by Monterey Bay ahead of its 2023 season. ==International==