Arizona announced the contract late Monday afternoon, shortly after the Boston Red Sox reached agreement on a five-year, $110 million contract with J.D. Martinez. Martinez had a big half-season with Arizona last year after being traded from Detroit, and the Diamondbacks were hopeful they could work out some sort of agreement to bring him back. But he was out of the price range for Arizona.
Dyson has already taken his physical.
Dyson, 33, led the Seattle Mariners with 28 stolen bases last season, his first with the club, before undergoing season-ending surgery in September to repair a core-muscle issue and sports hernia. He had a .251 average and set career highs with five home runs and 30 RBIs.
A former 50th-round pick, Dyson spent the first seven seasons of his career carving out a speed and outfield versatility role for himself with the Kansas City Royals, where he became a fan favorite thanks primarily to his speed on the bases.
Dyson is a career .258 hitter with 204 stolen bases. His arrival gave Seattle one of the quickest outfields in baseball and brought 11 outfield assists and only three errors in 108 games.
Dyson, who has the speed to play any of the outfield positions while also providing a strong, positive clubhouse presence, has a World Series championship ring from his Kansas City days.
Information from The Associated Press was used in this report.