Encarnacion was the last Reds player in arbitration. The agreement was announced Tuesday, hours before a scheduled hearing in Phoenix.
Encarnacion had asked for $3.7 million this season; the team offered $2.55 million.
The deal calls for $2 million in 2009 and $4.75 million in 2010, along with an $850,000 signing bonus and performance bonuses of $25,000 for 600 plate appearances.
Encarnacion batted .251 last season with 26 home runs and 68 RBIs.