Jeff Passan of Yahoo Sports first reported the deal Thursday and noted the pact has a mutual option for a second season. Per Passan, Moustakas' contract will guarantee him $6.5 million but has the potential to reach $22.7 million.
The 29-year-old is coming off the best year of his career, setting new highs with 38 home runs, 85 RBI and an .835 OPS.
He also appeared in 148 games just one season after a knee injury limited him to 27 contests.
Moustakas had been a key player in the Royals lineup since making his debut in 2011, helping the squad develop into a legitimate contender. The team went to the World Series in 2014 and won in 2015, with the third baseman hitting .304 in the five-game series.
He nearly doubled his best home run output last season, earning his second All-Star selection while keeping the Royals in the playoff hunt—although the squad fell short of the postseason for the second year in a row.
Now Kansas City will hope the latest power surge wasn't a fluke. While there are questions about his on-base percentage and consistency, he remains an impact player in the middle of the lineup.
Although the American League Central has gotten tougher over the past couple of years, keeping one of the team's biggest free agents should help keep it afloat.