The deal, which could be worth up to $2.9 million if he reaches performance bonuses, was announced Thursday.
The 31-year-old Oviedo signed with Tampa Bay before the 2013 season, but did not pitch while recovering from Tommy John surgery. Oviedo had 92 saves for the Miami Marlins from 2009-11, when he was known as Leo Nunez.
In addition to his base salary, Oviedo could earn $50,000 for appearing in 30 games, $150,000 each for 35 and 40 games, $200,000 each for 45 for 50 games and $350,000 for 55 games.
The deal also calls for Oviedo to receive $50,000 for 35 games finished and $100,000 for 40 games finished.