He began his professional career in 2003–04 as an undrafted free agent playing 41 games including 20 starts for the Chicago Bulls. He also played for the Phoenix Suns, San Antonio Spurs, New Jersey Nets, New Orleans Hornets and the Phoenix Suns, with whom he signed a 10-day contract late in the 2007–08 season. The Suns did not renew his contract, and on March 27, 2008, Johnson signed another 10-day contract with the Toronto Raptors. After the contract expired, Johnson re-signed with the Suns on April 16, 2008. On March 11, 2009, Johnson was signed to the first of two 10-day contracts by the Chicago Bulls. It was his second stint with the Bulls. He was signed for the remainder of the season after initially being released when his second 10-day contract expired. He was waived on July 30, 2009. In September 2009, Johnson signed with the Orlando Magic. He was waived on October 28, 2009. In August 2010 he signed with the Italian pro team Air Avellino.