All-Star outfielder Lorenzo Cain and the Kansas City Royals agreed to a two-year, $17.5 million contract extension Friday, tying the third-place MVP finisher to the World Series champions through his final two arbitration seasons, a source familiar with the deal told Yahoo Sports.

The Royals spent the offseason talking with Cain, 29, about a more substantive extension that would have bought out free-agent seasons. Instead, shortly after the sides filed arbitration numbers, they agreed on the shorter pact that gives Cain a substantive guarantee and the team cost certainty.

After emerging as one of the game’s best defensive center fielders, Cain last season took an offensive leap and finished behind Josh Donaldson and Mike Trout in MVP balloting with a .307/.361/.477 line and typically stellar glovework. Royals sources said Cain sought a six-year deal this offseason, and the team balked – especially after it re-signed free agent Alex Gordon through his age-36 season.

Kansas City will pay Cain $6.5 million this season – almost exactly the midpoint of the figures the sides exchanged earlier Friday. The $11 million for the 2017 season inures Kansas City from Cain’s final-year arbitration salary surging closer to the money paid top-notch free agents.

The Royals’ offseason checklist isn’t done. After locking up Gordon and Cain, the Royals have focused on starter Ian Kennedy, with whom they’d made progress on a deal in recent days, and redoing the contract of catcher Salvador Perez, the World Series MVP and a three-time All-Star and Gold Glove winner.