McGehee, a five-year major league veteran who played in Japan last season, agreed to a $1.1 million, one-year contract Wednesday. Miami earlier acquired catcher Jarrod Saltalamacchia, first baseman Garrett Jones and second baseman Rafael Furcal to shake up an offense that ranked last in the majors in runs and batting average.
"We needed to get more production offensively," president of baseball operations Mike Hill said. "We still have some work to do, but we're very comfortable with the progress we've made this offseason."
Miami designated 2008 first-round pick Kyle Skipworth for assignment. The catcher went hitless in three at-bats during a brief stint with the Marlins in his major league debut this year.
Marlins third basemen totaled three homers and 44 RBIs in 2013, worst in the majors in both categories. McGehee hit .292 with 28 homers in Japan last season.
"It was a great learning experience for me," he said. "I had to rely on myself a lot more as far as what I was doing at the plate. I started to realize the home runs showed up more when that wasn't the sole purpose of my at-bat. And being humbled a little bit having to go over to Japan -- all those things combined, I re-found my confidence. Now I'm excited about coming back and jump-starting my career over here."
McGehee's stint at third base for the Marlins might be brief. They took University of North Carolina third baseman Colin Moran with the sixth overall pick in the amateur draft, and he is expected to eventually take over the job.
"Moran definitely had an influence in our decision-making process," Hill said. "We invested a lot in him. We didn't want to rush him, but there's nothing we have seen that leads us not to believe he's going to be a productive player. When he's ready to be there, he'll be there."
In the meantime, the Marlins will count on the 31-year-old McGehee, who has an average of .257 in five big league seasons. He played for the Pirates and Yankees in 2012, and batted .217 with nine homers in 114 games.
The Marlins will be his fifth major league team. In addition to his base salary, he can earn $400,000 in performance bonuses: $50,000 each for 300, 350, 400, 450, 500, 525, 550 and 575 plate appearances.