Infante, who turns 32 on Dec. 26, hit .318 with 10 home runs, 51 RBIs and a .795 OPS for the Detroit Tigers last season.
Infante will provide the Royals with a versatile infielder. The 12-year veteran has played 60 percent of his major league games at second base and a combined 23 percent at shortstop and third. He's also seen limited action in the outfield.
His bat also should give a boost to Kansas City, whose middle infielders combined for an OPS of .574 this past season, dead last in baseball, according to ESPN Stats & Information.
The New York Yankees also were in the hunt for Infante, with a source telling Olney earlier this week that they offered him a three-year, $24 million deal.
Royals general manager Dayton Moore has said throughout the offseason that upgrading at second base was a priority. Kansas City used six players at the position last season -- Emilio Bonifacio, Jamey Carroll, Chris Getz, Johnny Giavotella, Elliot Johnson and Miguel Tejada -- and they combined to hit .243 with just four home runs.
The fallback plan for the Royals was to go into next season with Bonifacio as their primary second baseman, but he'll likely become a utilityman now.
The Royals are certainly familiar with Infante from having watched him play for their AL Central rival Detroit. Infante came up with the Tigers in 2002, and then was traded to the Cubs and Braves before landing back in Detroit two years ago, when he helped the Tigers win an American League pennant.
Infante is batting .279 with 74 homers and 421 RBIs over his 12-year career. He's never played more than 149 games in a season, and missed more than a month last year with an ankle injury that occurred when the Blue Jays' Colby Rasmus slid aggressively into his leg.
Information from The Associated Press was used in this report.