Free-agent starter Josh Johnson has reached agreement on a one-year, guaranteed $8 million contract with the San Diego Padres, a baseball source told ESPN.com.

The deal includes additional performance bonuses based on games started, 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 re-establish 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.