Butler was the Royals' player of the year the past two seasons and was the team's only remaining arbitration-eligible player. The agreement includes a club option for the 2015 season.
"There aren't a lot of high-quality right-handed bats out there and when you have one you want to hold on to him," general manager Dayton Moore told The Associated Press in a phone interview. "The fact that he's only 24 is something else that's very exciting for us. We feel that Billy's got a lot of good baseball in him."
Butler gets a $2 million signing bonus, a $3 million salary this year and $8 million in each of the following three seasons. Kansas City has a $12.5 million option for 2015 with a $1 million buyout, and escalators could increase the 2015 option price to $14.5 million.
Butler set career highs with a .318 average, 189 hits, 69 walks and a .388 on-base percentage last year. In four major league seasons, he has a .299 average with 55 homers and 278 RBIs.
Butler told MLB.com he was pleased he wouldn't have to worry about an arbitration hearing.
"It worked out for both sides," Butler said. "I've always been happy to be a Royal. We have a lot of young guys coming up, and we plan on doing great things. It just means I'm a big part of it."
Butler also had 15 homers and 78 RBIs in 2010.