Per Mark Berman of Fox 26, Brantley has agreed to a two-year, $32 million deal with the Astros.
Hazel Mae of Sportsnet reported earlier in the day that the Blue Jays and Brantley agreed to terms on a three-year deal.
Per ESPN's Jeff Passan, Brantley was still negotiating with the Blue Jays, among other teams, and no agreement was in place.
The Astros had already seen one of their marquee free agents reportedly leave to join the Blue Jays. MLB Network's Jon Heyman reported Tuesday that George Springer agreed to a six-year deal with Toronto worth $150 million.
By getting Brantley to stay, the Astros can plug him in left field. Myles Straw moves to the top of depth chart in center field after starting 19 games there last year. Kyle Tucker remains in right field. Yordan Alvarez, who only played two games last season before undergoing arthroscopic surgery on both knees in August, will be their primary designated hitter.
Brantley, 33, has spent the past two seasons in Houston after playing 10 years in Cleveland. He is a four-time All-Star and has hit at least .300 in each of the past three seasons. The Washington native has posted an .867 OPS with 27 homers and 112 RBI in 194 games with the Astros.
Houston had a disappointing regular season in 2020 with a 29-31 record, but it made the playoffs as an AL wild card thanks to the expanded field. It advanced to the ALCS before losing to the Tampa Bay Rays in seven games.
Brantley hit .346/.424/.558 with three homers and 11 RBI in 13 games last postseason.