SURPRISE, ARIZ. — Mike Moustakas hit 38 homers in 2017. No Royals player had ever hit more. His power output ranked tied for eighth in the major leagues. He made the All-Star Game at third base as he approached free agency for the first time.

Moustakas was 29 years old, coming off one of the best seasons of his career. He possessed a World Series championship ring and a past as a top prospect. He appeared to check all the boxes a free agent is supposed to. Riches awaited from some big-market team or playoff contender.

Yet on Thursday night, after the market had chilled and the offers had dried up, after his friends had signed elsewhere, Moustakas agreed to a one-year contract worth a guaranteed $6.5 million from the Royals, a deal first reported by Yahoo Sports’ Jeff Passan. The pact could pay him an additional $2.2 million in performance bonuses and includes a $15 million mutual option for 2019 with a $1 million buyout. The fallout from a cold winter was...