The Tigers announced the agreement Friday night.
The deal is for $4.35 million, sources said, and has a $5.4 million option for 2015, which triggers if Avila is selected to the All-Star team or makes the top 10 in MVP or Silver Slugger voting in 2014.
Avila hit .227 with 11 homers and 47 RBIs in 102 games last year for Detroit, his worst hitting performance since his first full season in 2010. He hit .303 after the All-Star break.
The 27-year-old Avila had just five hits in 11 postseason games last season.
He was an All-Star and a Silver Slugger in 2011, his second full year in the major leagues. He led the American League in runners caught stealing in 2011 and '12.
He has a .254 career average with 51 homers and 222 RBIs over 492 games and five seasons with the Tigers.
The Associated Press contributed to this report.