Following two years with the USA Hockey National Team Development Program, Johnson was selected third overall by the Carolina Hurricanes in the 2005 NHL Entry Draft. After a year at the University of Michigan, his rights were traded to the Los Angeles Kings. He would play another year at Michigan before signing his first professional contract with the Kings. In February 2012, he was traded to the Columbus Blue Jackets after five seasons in Los Angeles. In 2018, he signed with the Pittsburgh Penguins in free agency. But after two disappointing campaigns, he signed a one-year contract with the Rangers.