Free-agent slugger Josh Hamilton agreed to a five-year, $125 million contract Thursday with the Los Angeles Angels, sources told ESPN.com.

Hamilton's former team, the Texas Rangers, had been in negotiations to retain the 2010 MVP. Hamilton's camp had also reportedly met with the Mariners at the winter meetings.

Hamilton, 31, has batted .304 in his big league career, all but 90 games of it in Texas. He has provided big power in the middle of the Rangers' lineup, helping the team to World Series appearances in 2010 and '11.