En 2004, il participe à 141 parties et produit 61 points, un sommet en carrière.
Johnson s'aligne avec les Jays jusqu'en 2007. En 2006, il frappe un sommet personnel de 147 coups sûrs et affiche la 10e meilleure moyenne au bâton (,319) de la Ligue américaine. Il est aussi le joueur des majeures atteint par un lancer le plus grand nombre de fois durant cette saison (21).
Cubs de Chicago
Il rejoint les Cubs de Chicago comme agent libre et s'aligne avec l'équipe en 2009 et 2009. Il maintient une moyenne de ,303 la première année.
Dodgers de Los Angeles
Le 1er février2010, il signe une entente d'un an avec les Dodgers de Los Angeles[1]. Il frappe pour ,262 avec 2 circuits et 15 points produits en 102 parties jouées lors de cette unique saison avec le club.
Retour avec les Cubs
Après un an en Californie, Johnson revient à Chicago lorsqu'il signe un contrat des ligues mineures avec les Cubs en janvier 2011[2]. Il connaît une bonne saison 2011. Le voltigeur des Cubs frappe pour ,309 de moyenne en 111 parties. Le , les Cubs lui donnent un nouveau contrat d'un an[3]. En 2011, Johnson maintient une moyenne au bâton de ,309 en 266 apparitions au bâton pour Chicago, avec 5 circuits et 28 points produits. Le réserviste au champ extérieur affiche des résultats semblables en 76 parties jouées pour les Cubs la saison suivante, frappant pour ,302 au moment d'être échangé par le club.
Braves d'Atlanta
Le , les Cubs transfèrent Johnson et le lanceur gaucher Paul Maholm aux Braves d'Atlanta en échange de deux joueurs d'avenir, les lanceurs droitiers Arodys Vizcaíno et Jaye Chapman[4]. Il frappe pour ,270 en 100 présences au bâton pour Atlanta et termine la saison 2012 avec trois circuits, 20 points produits et une moyenne au bâton de ,290 en 119 matchs au total pour les Cubs et les Braves. Ces derniers le ramènent en 2013 avec un contrat de 1,75 million de dollars pour une saison[5].
Le , Reed Johnson signe un contrat des ligues mineures avec les Marlins de Miami[6]. Il frappe pour ,235 en 113 matchs des Marlins en 2014 puis est libéré durant l'entraînement de printemps en 2015.
Nationals de Washington
Johnson signe le chez les Nationals de Washington et joue 17 matchs avec eux au cours de la saison qui suit. Il participe au camp d'entraînement printanier des Nationals en 2016 mais est retranché avant le début de la saison[7].