Johnson began his career in the Cartaginés youth system. He joined Herediano in 2004 and became one of the top right backs in Costa Rica. In his four years at the club Johnson appeared in 91 Primera División de Costa Rica games and notched 4 goals. In 2008 Johnson signed with Norwegian club Bryne FK, and subsequently appeared in 17 matches for the club scoring one goal, but due to the club’s economic problems, he was released from his contract in early 2009.
On March 19, 2009, Johnson signed with the New York Red Bulls, who had been seeking him since the summer transfer window. He made his New York debut on April 5 as a substitute for Jeremy Hall in the 62nd minute of a 1–0 loss to the Chicago Fire at Toyota Park. In his first Red Bulls start six days later he was shown the red card in the 78th after taking down Geoff Cameron with a hard sliding tackle in a scoreless draw with the Houston Dynamo at Robertson Stadium. After serving a one-match suspension, he was immediately expelled for doing the same to deny Herculez Gomez a goal-scoring opportunity in New York’s penalty area two minutes into the next game against the Kansas City Wizards at CommunityAmerica Ballpark on April 23. This established a new Major League Soccer (MLS) record for fastest ejection from a contest, displacing Aidan Heaney who had held the previous mark for almost thirteen years.Claudio López‘s successful penalty kick as a result of the infraction was the only goal in the Red Bulls’ 1–0 defeat. Johnson picked up his third red card of the campaign as a result of an altercation with Michael Harrington right after the final whistle following another 1–0 loss to the Wizards at Giants Stadium on September 12. His three transgressions equaled the league and franchise records for most red cards in one season, which had been established by Branco in 1997. Johnson was waived by New York on February 12, 2010.