The deal includes an additional $1.25 million in performance bonuses if Johnson makes 26 starts, the source said. Johnson was in San Diego for a physical exam Tuesday and the contract is expected to be announced by the club Wednesday.
Johnson, 29, is 58-45 with a 3.40 ERA in parts of nine seasons with the Miami Marlins and Toronto Blue Jays. He went 2-8 with a 6.20 ERA in a disappointing, injury-plagued 2013 season with Toronto, and had been looking for a short-term deal to reestablish himself before going back on the open market next winter.
Johnson did not receive a qualifying offer from Toronto, so the Padres will not have to give up a draft pick in exchange for signing him.
The San Francisco Giants, Pittsburgh Pirates and Kansas City Royals are among the other big league teams that expressed interest in Johnson. The pitcher had targeted the Padres and Giants as his top two choices and turned down bigger one-year offers to sign with San Diego, said a source.