Skelton signed with the 49ers on Wednesday, the team announced. An NFL source said Skelton chose to sign with San Francisco over Tennessee and another team.
Skelton opted to sign with the 49ers because he is interested in being coached by Jim Harbaugh and offensive coordinator Greg Roman. Skelton was recently cut by Cincinnati. He started 17 games for Arizona in 2010-2012.
Skelton is 6-foot-6, 250 pounds and has a big arm, but many scouts feel he has been an undisciplined player.
There is a chance Skelton, 25, could take over as the 49ers' backup quarterback over Colt McCoy. Skelton and McCoy will likely compete for the No. 2 job in the coming weeks.
The Niners released No. 3 quarterback B.J. Daniels on Tuesday. The seventh-round pick was a preseason standout, and Daniels is likely a candidate to go to the practice squad if he is not claimed by another team Wednesday.
San Francisco also signed former New England linebacker Jermaine Cunningham. The 2010 second-round pick was a final cut by the Patriots this year. The 49ers need some depth at the position.
San Francisco also cut fullback Owen Marecic. He was signed last month and had been the only player that played for Harbaugh at Stanford on the 49ers' 53-man roster.
Meanwhile, safety Donte Whitner tweeted that he was fined $21,000 by the NFL for a hit against St. Louis. Whitner is planning to appeal the fine.