Terms of the deal weren't revealed, but MLB.com reported it was worth $8 million, with another $1.25 million available if the 29-year-old right-hander makes at least 26 starts in 2014.
Johnson recorded a 3.15 ERA over eight seasons with the Florida Marlins, including a league-best 2.30 ERA in 2010.
After being traded to the Toronto Blue Jays last season, however, he regressed to a 6.20 ERA in 16 starts before ending his season in August. He later had surgery to remove bone spurs and loose cartilage in the his pitching elbow.
"There's many ways to make a roster better, but we decided that if we could find a starting pitcher who could be difference-maker, we were going to go after it," Byrnes told the website.
"[Johnson] has led the league in ERA and has been a dominant pitcher, and we had the opportunity to sign him. We know there's risk, but we're very excited about the upside about what he can bring."