Philadelphia scheduled a news conference for Saturday to introduce Harper. He will wear No. 3 rather than the No. 34 he used with the Washington Nationals, where he spent his previous major league seasons.
Harper has a .279 career average with 184 homers and 521 RBIs, including a .268 average with 14 homers, 32 RBIs in 47 games at Citizens Bank Park.
His agreement tops the $325 million, 13-year agreement outfielder Giancarlo Stanton reached before the 2015 season with the Miami Marlins, who traded him to the New York Yankees in December 2017.
Harper gets a $20 million signing bonus in equal installments this June 1 and Nov. 1, a $10 million salary this year, $26 million in each of the following nine seasons and $22 million in each of the last three years. None of the money is deferred, and he gets a full no-trade provision.
Philadelphia forfeited its second-highest draft selection, currently No. 55, and $500,000 of its 2019-20 international signing bonus pool allotment. Washington’s compensation pick will be after the fourth round, about 140th.