A number of teams, including the Buffalo Bills and the Oakland Raiders, were rumoured to be interested in the 25-year-old, but the Vikings have chosen to add him to their roster that already includes Christian Ponder, Matt Cassel and McLeod Bethel-Thompson at quarterback.
"I think Josh Freeman is a good player. We just have to figure out where things went wrong in Tampa Bay so we can help him. He is too young not to progress," a Vikings source told ESPN.
Freeman had his best season in terms of yards and touchdowns thrown last year, but his completion rate was the lowest it had been since his rookie season.