The 27-year-old Johnson was set to become an unrestricted free agent on the first day of the NFL's free-agency period. Terms of the deal are not known.
A third-round pick out of Alabama in 2009, Johnson has started 12 games over the last two seasons and took over a larger role late last year, with veteran safety Adrian Wilson relegated primarily to the Cards' nickel and dime packages as the season went on. Wilson was released last week, saving the team about $3 million in salary-cap space, and Johnson became a priority as the projected starter at strong safety alongside Kerry Rhodes.
In 2012, Johnson finished with 20 tackles, two pass breakups, two interceptions (one returned for a touchdown) and one fumble recovery in 15 games, three of them starts. In his four-year career, the 5-foot-11, 204-pounder has accumulated 133 tackles, 10 pass breakups and three picks.