The 30-year-old Gomes, who spent his first six major league seasons with Tampa Bay, hit .267 with 20 homers and 51 RBIs for the Reds this year. He started the season at Triple-A Louisville and was brought up May 22.
Gomes had a split contract this year calling for salaries of $75,000 in the minors and $600,000 in the majors. He earned an additional $100,000 in performance bonuses based on plate appearances.
Cincinnati can still re-sign Gomes, who had been eligible for arbitration and becomes a free agent Sunday.