Johnson speelde in de jeugd voor Arsenal en Cambridge United. Hij tekende in januari 2008 een contract voor 3,5 jaar bij Leeds United. Daarbij maakte hij op 14 januari 2008 zijn debuut, tegen Crewe Alexandra. In 122 competitiewedstrijden scoorde hij zestien keer voor Leeds.
Johnson tekende op 1 juli 2011 een driejarig contract bij Norwich City. Op 17 september 2011 maaktehij zijn eerste doelpunt voor Norwich, tegen Bolton Wanderers.