The deal is worth $50 million, according to Fancred Sports' Jon Heyman.
Philadelphia back-loaded the deal, paying McCutchen $10 million in 2019, $17 million in 2020, $20 million in 2021, plus a $15-million club option with a $3-million buyout for 2022, a source told The Athletic's Ken Rosenthal.
McCutchen was originally seeking a five-year contract in the $80-million range, according to Yahoo Sports' Jeff Passan.
Herrera and Williams are now potential trade candidates, The Athletic's Matt Gelb reports.
He should now help fortify a Phillies lineup that finished last in team batting average among NL clubs in 2018.
2019 Projected Phillies Lineup:
The 2013 NL MVP Award winner is also returning to the state of Pennsylvania after spending his first nine MLB seasons with the Pittsburgh Pirates.
During his 10-year career, McCutchen's been worth 48.6 WAR and owns a slash line of .287/.378/.481 with 223 home runs and 790 RBIs.