Johnson spent most of the 2006 season with the Cardinals' minor league team, the Triple-A Memphis Redbirds, but appeared in 56 games and pitched 36 ⅓ innings with the St. Louis Cardinals. In the 2006 postseason, he pitched 7 ⅓ innings and compiled a 1.23 ERA, including one scoreless inning pitched in the 2006 World Series, which the Cardinals won, defeating the Detroit Tigers, four games to one. He pitched again for the Cardinals in 2007 before becoming injured and missing the 2008 season. He was non-tendered following the 2008 season.
On February 5, 2009, Johnson signed a minor league contract with an invitation to spring training with the Seattle Mariners. After 2 months in the minors rehabbing, Johnson was released on June 6.
Signed a minor league contract for 2012 season with Colorado Rockies.