Pena's contract is worth $7.25 million, a baseball source told ESPN.com.
Pena spent four seasons with the Rays beginning in 2007, helping them reach the playoffs twice before signing as a free agent with the Cubs for $10 million last season. That creative contract actually deferred $5 million and must be paid by the Cubs this January, a source told ESPNChicago.com's Bruce Levine.
Pena played in 153 games and batted .225 with 28 home runs and 80 RBIs last season.
Pena also had been sought by the Cleveland Indians, who have been looking to add a powerful bat.
The 33-year-old is the second major addition to the middle of the Rays batting order this winter. The team signed free agent Luke Scott to a $6.5 million, one-year contract last week.
In addition to bolstering the offense with a bat that hit 144 homers and drove in 407 runs during Pena's first stint in Tampa Bay, the Rays filled the need for an everyday first baseman. Pena won a Gold Glove in 2008, a year after he posted the best offensive numbers of his career with a .282 batting average with 46 homers and 121 RBIs to earn the AL Comeback Player of the Year award.
The left-handed hitter also drove in 100 or more runs in 2008 and 2009, when he was an All-Star. He left Tampa Bay after slumping to .196 with 28 homers and 84 RBIs two years ago.
Information from ESPN.com senior MLB writer Jerry Crasnick and The Associated Press was used in this report.