Josh Johnson and the Marlins agreed Thursday to a $39 million, four-year contract, a person familiar with the negotiations said. The person spoke to The Associated Press on condition of anonymity because the Marlins hadn't announced an agreement. The deal covers Johnson's final two years of salary arbitration eligibility and pushes back his chance to become a free agent by two years. The deal comes only two days after an announcement that the Marlins agreed to increase payroll spending in response to complaints from the players' union.