With the agreement, the sides will avoid arbitration. Moustakas will receive a $10,000 bonus if he reaches 550 plate appearances, a number he has totaled only once in his four-year career.
Moustakas hit .212 with 15 home runs and 54 RBIs for the Royals last season.
In Kansas City's playoff run to the World Series, the 26-year-old hit .231 with five home runs and seven RBIs in 15 games.
Moustakas' best offensive season came in 2012, when he hit .242 with 20 home runs and 73 RBIs and had a .296 on-base percentage.
- Molly Geary