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.
Justin Bieber crashes Drake Bell's album release party
Putin thinks Obama would save him if he were drowning