College Johnson played college ice hockey for the
University of Alaska Fairbanks (Nanooks). He was drafted by the
Pittsburgh Penguins 125th overall in the
National Hockey League's (NHL)
2006 Entry Draft. During his senior year, he was the
Central Collegiate Hockey Association Player of the Year, as well as a
Hobey Baker Award finalist.
Professional New York Rangers After graduating, on June 27, 2009, Johnson was traded to the
New York Rangers in exchange for a fifth-round pick (151st overall) in the
2009 NHL entry draft. He began his professional career in the 2009–10 season with the Rangers
American Hockey League affiliate, the
Hartford Wolf Pack. When the Rangers waived
Stephen Valiquette to Hartford on December 2, Johnson was recalled to serve as a backup goaltender to
Henrik Lundqvist. He made his NHL debut against the
Philadelphia Flyers on December 30, 2009, when he replaced Lundqvist after the first period. He allowed a breakaway goal to
Simon Gagné on the first shot he faced, after playing for 23 seconds. He finished the game with 17 saves on 20 shots over two periods. He played his first career start against the
Atlanta Thrashers and lost 2–1 in overtime.
Phoenix Coyotes After spending three years with the Rangers'
American Hockey League (AHL) affiliate club
Hartford Wolf Pack/Connecticut Whale, and playing in six NHL games, Johnson became an unrestricted free agent. He signed with the
Phoenix Coyotes for a one-year, two-way contract and assigned to the AHL's
Portland Pirates. At the beginning of the
lock-out shortened
2012–13 season, starting goaltender
Mike Smith suffered a lower body injury. Johnson was called up to provide backup to
Jason LaBarbera. After spending two games as a backup, on January 28, 2013, Johnson was called on to start in goal against the
Nashville Predators. In his first NHL start since January 31, 2010, seventh overall, he earned first star accolades by stopping all 21 shots he faced on his way to his first NHL career shutout.
Boston Bruins On July 5, 2013, Johnson was signed as a free agent to a one-year contract with the
Boston Bruins. Johnson was the team's backup goaltender, behind
Tuukka Rask, marking his first full-time NHL job.
New York Islanders On July 1, 2014, Johnson was signed as a free agent to a two-year, $2.6 million contract with the
New York Islanders. During his time with the club, Johnson posted an (8–8–1) record.
Buffalo Sabres On March 2, 2015, he was traded along with a draft pick to the
Buffalo Sabres in exchange for
Michal Neuvirth., but he did not play for the Sabres until the 2015–16 season. On December 17, 2015, Johnson recorded a 44-save shutout, breaking the Sabres franchise record for most saves in a regular season shutout, which had been held by
Ryan Miller.
Calgary Flames As a free agent from the Sabres, on July 1, 2016, Johnson joined his sixth NHL club in signing a one-year contract with the
Calgary Flames. Johnson began the
2016–17 season, initially serving
Brian Elliott as the backup, before he was elevated to shared starts through the midpoint of the year. Johnson would later return to his backup status in completing the season with 18 wins in 36 games. Johnson made his first NHL playoff appearance in Game 4 of the
Stanley Cup Playoffs against the
Anaheim Ducks, in relief of Elliot. The Flames would lose the game, 3–1, and get swept out of the playoffs. On June 17, 2017, Johnson was as an impending free agent was traded back to former club, the Arizona Coyotes, in the Flames acquisition of
Mike Smith. Included in the trade largely for
2017 NHL Expansion Draft considerations, he was dealt alongside prospect Brandon Hickey and a conditional 3rd round pick.
Return to Buffalo Johnson went to market as a free agent from the Coyotes, and promptly signed a one-year, $2.5 million contract for a second stint with the Buffalo Sabres on July 1, 2017. In the
2017–18 season, Johnson was unable to replicate his previous season with club, in winning just 10 of 36 games, he was unable to steer the Sabres from a last place finish in the league.
St. Louis Blues and Anaheim Ducks On July 1, 2018, Johnson opted to move on from the Sabres and agreed to a one-year, $1.75 million contract with the
St. Louis Blues. In the
2018–19 season, Johnson as the club's backup to
Jake Allen, appeared in 10 games as the Blues struggled to start the campaign. After collecting just two wins, Johnson was placed on waivers by the Blues and was claimed by the
Anaheim Ducks on December 11, 2018. ==Career statistics==