Quarterback Josh Johnson, who was among the 49ers' final roster cuts before the 2012 season, is back for another chance to make the team's 53-man roster.
The 49ers re-signed Johnson to a one-year contract on Wednesday. The 49ers waived defensive tackle Christian Tupou to make room for Johnson on the 49ers' offseason roster.
Johnson spent time with the Cleveland Browns in 2012 and the Cincinnati Bengals in 2013. The Bengals released Johnson on Monday. He has not attempted a pass in a regular-season game since the 2011 season when he served as the backup to Tampa Bay starter Josh Freeman.
Johnson did not earn a roster spot for the 49ers in 2012 despite outplaying Scott Tolzien during the exhibition season. Tolzien broke camp as the 49ers' No. 3 quarterback behind Alex Smith and Colin Kaepernick. Johnson completed 15 of 25 passes for 219 yards with two touchdowns and no interceptions. His passer rating was 115.3, while Tolzien struggled with a 41.9 passer rating.
Johnson is one of five quarterbacks on the 49ers' roster. Kaepernick is entrenched as the starter, and Blaine Gabbert is expected to be the 49ers' backup. McLeod Bethel-Thompson and undrafted rookie Kory Faulkner are also on the roster.
A native of Oakland, Johnson played at the University of San Diego under 49ers coach Jim Harbaugh. He turns 28 on Wednesday.