The Giants acquired Andrew McCutchen from the Pittsburgh Pirates for right-hander Kyle Crick, minor league outfielder Bryan Reynolds and $500,000 in international signing bonus allocation.
Pittsburgh also will send the Giants cash to cover part of McCutchen's $14.75 million salary.
McCutchen become the second star jettisoned by the Pirates in three days, following Saturday's trade that sent ace Gerrit Cole to Houston.
Earlier in the offseason, the Giants acquired third baseman Evan Longoria from Tampa Bay.
McCutchen announced his arrival with the Giants on Twitter.
McCutchen, the 2013 NL MVP, takes over in center from Denard Span, who was traded to the Rays in the Longoria deal. San Francisco wanted more production and steady defense from the center field position after a surprising last-place season in the NL West. The reliable, durable 31-year-old McCutchen has played at least 153 games in each of the past three seasons for the Pirates, batting .279 with 28 home runs and 88 RBIs in 156 games in 2017. But he has not been an All-Star since 2015, when he was selected for the fifth straight season.
The trade is the latest rebuild move for both franchises.
On Saturday, Pittsburgh traded pitcher and former UCLA Bruin Gerrit Cole to the World Series champion Houston Astros in a five-player deal.
For the Giants, who are looking to rebound from a 98-loss season, McCutchen is the second veteran addition after the team acquired third baseman Evan Longoria from the Tampa Bay Rays last month.