The Miami Marlins and shortstop Jose Reyes agreed to terms on a six-year, $106 million deal Sunday, sources have told ESPN.

The guarantee for the first six years totals $102 million, sources said. The deal includes a $22 million option for a seventh year, with a guaranteed $4 million.

Reyes, 28, is coming off the best year in his career. He hit .337 for the New York Mets to win his first batting title. In nine years, all with the Mets, he has batted .292 with 370 steals and 740 runs scored.

Earlier in the offseason, Miami offered Reyes a six-year, $90 million deal, which he rejected.

Reyes' signing would mean the Marlins' All-Star shortstop, Hanley Ramirez, will have to change positions. Publicly, the Marlins are saying they haven't decided whether Ramirez would move to third base or center field. However, one source close to Ramirez told ESPN.com that Ramirez already has agreed to move to third base next spring.

Signing Reyes, the best shortstop available during the winter, was established as the main objective of the Marlins in the offseason, as they prepare to open a luxurious new stadium near downtown Miami in April.

On Thursday, free agent closer Heath Bell agreed to a three-year contract, pending a physical, sources told ESPN.com.