Coleman will reunite with 49ers head coach Kyle Shanahan, who was his offensive coordinator with the Atlanta Falcons from 2016 to 2017.
The 25-year-old started 14 games in 2018 after Devonta Freeman was lost to injury. He racked up a career-high 800 yards and averaged 4.8 yards per carry, which was tied for the 15th-best mark in the NFL last season, according to ESPN.
Coleman's arrival likely puts the future of Jerick McKinnon, San Francisco's prized free-agent addition last season, into question.
McKinnon tore his ACL in September after inking a four-year, $30-million deal. His 2019 salary will become fully guaranteed on April 1, according to Over The Cap, and his release would incur a $6-million dead money hit.