The 49ers just lost Jimmy Garoppolo for the season, so a move at quarterback was expected.
Johnson previously played for the 49ers and HC Kyle Shanahan. He will join Brock Purdy and Jacob Eason as quarterbacks on the 49ers’ roster.
Johnson, 36, is a former fifth-round pick of the Buccaneers back in 2012. Since then, Johnson has played for a number of teams including the 49ers, Browns, Bengals, Chargers, Jets, Colts, Bills, Ravens, Giants, Texans and Raiders.
Johnson was selected with the No. 1 overall pick by the San Diego Fleet of the Alliance of American Football before signing on with Washington in 2018. From there, he had brief stints with the Lions, 49ers and Jets before finishing out last season with the Ravens.
The Broncos signed Johnson to a contract this past March before adding him to their practice squad.
In 2021, Johnson appeared in four games for the Ravens and Jets and completed 67.1 percent of his passes for 638 yards, five touchdowns, and two interceptions. He also rushed for 28 yards.