The deal will pay Loney an additional $1 million if he reaches specified performance bonuses, the source said.
Loney, 28, is a .282 hitter with a .758 OPS in seven seasons with the Los Angeles Dodgers and Boston Red Sox. The Dodgers traded him to Boston in August as part of the multi-player deal that sent Adrian Gonzalez, Carl Crawford and Josh Beckett to Los Angeles.
Loney hit a combined .249 with six homers and 41 RBIs in 144 games last season with the two clubs.
He will replace Carlos Pena, who hit .197 with 19 homers as Tampa Bay's primary first baseman in 2012. Pena is also a free agent this winter.