The former Kansas City Chiefs star was the franchise's all-time leading rusher with 7,260 yards and 43 touchdowns in nine seasons. He also had 285 receptions for 2,457 yards and 20 scores for the Chiefs.
Charles, 30, is a three-time All-Pro selection and four-time Pro Bowl selection. The former rival running back spent the majority of the last two seasons on injured reserve, playing in just eight games.
The deal is worth up to $3.75 million, according to NFL.com.
"Excited to have Jamaal Charles join the Broncos," Broncos executive vice president of football operations John Elway tweeted. "A great addition to our backfield, and we're thrilled we won't have to play against him!"
Charles tallied at least 1,300 yards from scrimmage in five of six seasons from 2009 through 2014. He had a career-high 1,980 yards from scrimmage and league-best 19 touchdowns in 2013.
The Chiefs cut Charles in February. He tore the ACL in his right leg in 2015 and had meniscus surgery on the same leg in November. He has also had work done on his left knee. Charles visited the Seattle Seahawks in March and was also liked to the Philadelphia Eagles this offseason.
He will fit in somewhere between C.J. Anderson, Devontae Booker, rookie De'Angelo Henderson, Juwan Thompson and Andy Janovich.