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

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.

Johnson will join Ian Kennedy, Andrew Cashner, Eric Stults and Tyson Ross in San Diego's projected 2014 rotation, with Joe Wieland, Cory Luebke and Robbie Erlin also in the mix.