McCann, who turns 30 in February, had played his entire nine-season major-league career with the Atlanta Braves and was regarded the top free agent catcher this off-season.
The deal -- worth a reported $85 million -- covers the period through the 2018 season and includes a vesting option for 2019.
"In Brian McCann, we feel we have made a significant improvement to a key position, while adding a high-character presence to our clubhouse," Yankees Managing General Partner Hal Steinbrenner said in a release. "Our work this off-season has just begun but we feel this is an important step toward what will be an exciting and rewarding 2014 season for our fans."
McCann was selected to the NL All-Star team in seven of his nine seasons with Atlanta. He hit .277 with 176 home runs and 661 runs batted in.
He's hit at least 20 home runs each of the last six seasons.
The Yankees split 2013 catching duties among Chris Stewart, Austin Romine, Francisco Cervelli and J.R. Murphy.