The Cardinals announced Thursday that they agreed to terms with Johnson on a one-year contract. The team did not disclose financial terms.
Johnson visited Miami on Wednesday, but the Dolphins failed to lure him away from Arizona. He ran for 814 yards and three touchdowns on 196 carries in 11 games last season for the Cardinals, including four 100-yard games, before he suffered a fractured tibia in December.
Johnson is the second free agent running back that the Dolphins were unable to land. Restricted free agent C.J. Anderson signed a four-year offer sheet with Miami but the Denver Broncos matched it to retain Anderson's services.
With rookie running back David Johnson emerging late in the season for the Cardinals, 30-year-old Chris Johnson is likely to play a reduced role next season.
In 2009, Johnson rushed for 2,006 yards and had an NFL-record 2,429 yards from scrimmage with the Titans.