Terms of the deal weren't announced, but the Fort Worth (Texas) Star-Telegram reported Moreland's contract is for $2.65 million.
The 28-year-old was seeking $3.25 million in arbitration, while the Rangers responded with a $2 million offer, the newspaper said.
Moreland, a four-year veteran, posted career highs of 23 home runs and 60 RBI, but recorded a career-low batting average of .232, in 147 games for the Rangers in 2013.
UPI horse racing weekend preview
Bo Jackson: I can't help Jameis Winston anymore