Nearly two weeks after agreeing on a three-year deal, outfielder Carlos Beltran and the New York Yankees have finalized the contract worth $45 million.

The agreement, reached Dec. 6, was announced by the team Thursday. The eight-time All-Star is to be introduced at a Yankee Stadium news conference Friday.

The 36-year-old played for the Mets from 2005-11, until he was traded to San Francisco before the 2011 trade deadline. He signed a $26 million, two-year contract with St. Louis before the 2012 season and reached the World Series for the first time this past season.

Slowed by knee injuries, Beltran has retained a potent bat — especially in October. He hit .296 with 24 homers and 84 RBI for the Cardinals in 2013 and added two homers and 15 RBI in the postseason. Beltran injured ribs in the World Series opener when he banged into Fenway Park's right-fight fence while robbing Boston's David Ortiz of a grand slam.

New York seems to have a logjam among outfielders on its roster, a group that includes Jacoby Ellsbury, Brett Gardner, Ichiro Suzuki, Alfonso Soriano and Vernon Wells.

To open a roster spot, the Yankees designated right-hander Brett Marshall for assignment.