Johnson attended the University of Southern California from 2009 and 2012, where she played as a forward. In her freshman season, Johnson appeared in 20 games, starting 19 of them. She was second on the team in goals with four and was named to the Pac-10 All-Freshman Team. In 2010 Johnson appeared in all 22 games for the Trojans. Johnson started all 20 games of her junior year in 2011 and scored the fasted goal in program history, 14 seconds into the match. In the final match of her senior year, Johnson scored the game-winning goal in a 2–1 win over rivals UCLA Bruins.
In March 2014, Johnson joined the Chicago Red Stars in the National Women's Soccer League for preseason, after attending their 2014 Open Tryouts. Johnson was named to the team's official roster for 2014 and appeared in twelve games and tallied one assist. She suffered facial lacerations in a game against the Western New York Flash on June 18, which ended her rookie season. In 2015 Johnson appeared in 14 games for the Red Stars. Chicago qualified for the play-offs for the first time in 2015, Johnson appeared as second-half substitute in their semi-final match against FC Kansas City, Chicago lost 3–0. Johnson started 20 games for Chicago in 2016, as the Red Stars were eliminated in the semi-final for the second consecutive season. In 2017 she was the starting centre-back alongside Katie Naughton and she appeared in 22 games. Johnson was named to the team of the month for June 2017. On June 16, 2018, Johnson along with teammates Sofia Huerta and Taylor Comeau were made unavailable for the Red Stars match due to a pending trade. On June 18 she was traded to the Utah Royals as part of a three team trade.
Loan to Sydney FC
In September 2014, it was announced that Johnson was to be loaned to Sydney FC in the W-League.
Loan to Melbourne Victory
In October 2016, Johnson was loaned to Melbourne Victory for the 2016–17 W-League season. Johnson returned to the Victory for the 2018–19 W-League season, she appeared in 12 matches for Melbourne as they won the Premiership as the top team during the regular season. In the W-League semi-final against Perth, Johnson received two yellow cards and was sent off in extra-time, Melbourne lost to Perth 4–2.
Utah Royals FC (2018–2019)
After being acquired by the Utah Royals FC midseason, Johnson made her debut for the Royals on June 30 in a 3–1 win against Sky Blue FC, she started and played all 90 minutes at centre-back. Johnson made six appearances for the Royals in 2018. Johnson appeared in 8 games for the Royals in 2019. She announced her retirement from professional soccer on June 28, 2019.