The 49ers announced Wednesday that they had signed Johnson, who has played 29 games in his five-year career and started a total of five, to a one-year deal. In order to make room for him, San Francisco waived defensive tackle Christian Tupou.
Last season with the Bengals, Johnson played in two games but didn't attempt a pass as Dalton's backup, though Johnson did rush for 20 yards on seven carries. In fact, the last time he made a pass attempt was 2011 when he was Josh Freeman's backup with the Buccaneers, the team that originally drafted him in the fifth round in 2008.
In his career, Johnson is 0-5 as a starter, but he owns a 6.2 yards-per-rush average on 44 career carries.