After rejecting a $15.8 million qualifying offer from the Nationals, Desmond remained a free agent until February 29, 2016, when he signed a one-year, $8 million contract with the Texas Rangers. Desmond was expected to play primarily in the outfield rather than as a shortstop for the Rangers. He made his first appearances in left and center field during Cactus League action in March 2016.
Desmond was selected as an American League All-Star to represent the Rangers at the 2016 Major League Baseball All-Star Game in San Diego along with teammate Cole Hamels. Prior to the game, Desmond was batting .322 with 15 home runs and 55 RBIs. Desmond finished the 2016 season with a batting average of .285, 22 home runs, and 86 RBIs. The Rangers lost in the 2016 ALDS, being swept by the Blue Jays in three games. In the series Desmond went 3-for-14 (.214) with 2 RBIs.
On December 13, 2016, Desmond signed a five-year contract with the Colorado Rockies. During a spring training game on March 13, 2017, Desmond was hit by a pitch on his left hand. The injury resulted in a metacarpal fracture, requiring surgery. He appeared in his first game for the Rockies on April 30 in left field, due to the strong play of first baseman Mark Reynolds.