The Houston Astros and free-agent outfielder Josh Reddick have agreed on a four-year, $52 million contract, according to multiple reports.