The 33-year-old switch-hitter receives $2.5 million in each of the next two seasons.
Pena led Reds catchers with 86 games last season while batting .273 with a career-best .344 on-base percentage. He led the NL with a .999 fielding percentage, making one error in 715 chances.
Pena has a .260 career average, with 23 homers and 164 RBIs in 629 games over 11 big league seasons. He spent the last two years with the Reds and has played for Detroit, Kansas City and Atlanta.
Tony Cruz had been Molina's backup in recent seasons.