He previously played senior matches with the West Coast Eagles, the Melbourne Football Club, and the Hawthorn Football Club in the Australian Football League (AFL), the Swan Districts Football Club in the WAFL, and the Sandringham Football Club and the Box Hill Football Club in the Victorian Football League (VFL). Johnson was the winner of the 2005 J. J. Liston Trophy, as well as the 2012 Simpson Medal as the best player in an interstate match for Western Australia.
Originally from the Australian state of Victoria, Johnson played under-18 football for the Dandenong Stingrays in the TAC Cup before being drafted by the West Coast Eagles with the 24th pick overall at the 2002 National Draft. As part of West Coast's affiliation with WAFL clubs, Johnson was selected to play matches for the Swan Districts Football Club.Making his debut for Swan Districts in the first round of the 2003 season, strong form playing mainly at centre half-forward led to Johnson making his debut for West Coast in round five of the 2003 season, in the Western Derby match against Fremantle.In the game, which was to be his only game for West Coast at AFL level, he recorded one disposal, a handball, and one tackle. Having played a total of 32 games and kicked 41 goals over two seasons at Swan Districts without gaining another opportunity at AFL level, иJohnson was traded to the Melbourne Football Club during the trading period at the end of the 2004 season, in exchange for the 29th pick in the National Draft.
Making his debut for Melbourne in round seven of the 2005 season, against Adelaide, Johnson played a total of eight games in his first season with the club, as a back-up ruckman behind Jeff White. However, he played 14 games for Melbourne's affiliate club in the VFL, Sandringham, and at the end of the season was awarded the J. J. Liston Trophy as the best and fairest player in the league, having tied with the Tasmanian Devils' Ian Callinan on 16 votes, including five best on ground efforts. Johnson also played in the club's premiership win over Werribee. He played two games for Melbourne early in the season, including a two-goal game against Sydney in round four, but missed the rest of the season due to a shoulder injury which required a shoulder reconstruction. Johnson was used mainly as a second ruckman throughout his time at Melbourne, and was delisted at the end of the 2010 season having played a total of 68 games for the club.
After his delisting in 2010, Johnson was asked to join Hawthorn's pre-season training squad as one of three players competing for an extra spot on the club's rookie list.He was eventually selected to join the list, but was forced to miss eight weeks at the start of the season due to a stress fracture in his foot.Johnson was upgraded to Hawthorn's senior list in May 2011, after injuries to key position players and strong form for the club's affiliate in the VFL, Box Hill. He played his first and only game for Hawthorn against Gold Coast in round 24 of the 2011 season, becoming one of a small group of players to have played with three or more clubs.After being delisted at the end of the 2011 season, Johnson trained with Hawthorn in an attempt to again win a spot on the rookie list, but was not selected.Following this, he was recruited by East Perth in the WAFL.In May 2012, he was named in the state squad for the match against the South Australian National Football League, and was later awarded the Simpson Medal as the best player on the ground for Western Australia.