The move is expected to happen within the next 24 hours, the source said.
Hoyer, who spent the past two seasons with the Cleveland Browns, will join a Texans team that reached a contract extension with QB Ryan Mallett on Tuesday worth what sources say is two years, $7 million.
Hoyer also had expressed interest in signing with the New York Jets.
The 29-year-old Hoyer won the starting job in Cleveland last season in a training camp competition with Johnny Manziel and got off to a fast start.
He brought the Browns back from a 27-3 halftime deficit to tie the season opener in Pittsburgh, before the Steelers kicked a game-winning field goal, and guided the biggest road comeback in NFL history in a 29-28 win over Tennessee.
Hoyer threw three interceptions in Atlanta in November but also led a last-minute drive that won the game. At that point, the Browns were 7-4 and in the playoff chase.
But he was yanked the following week in Buffalo, and his season was never the same.
Hoyer played tight the next week against the Colts and lost his job as the starter to Manziel the following week. He returned only when Manziel pulled a hamstring after six woeful quarters on the field.
For the season Hoyer threw for 3,326 yards with 12 touchdowns and 13 interceptions. His season rating was 76.5, which ranked 31st in the league. But Hoyer is the only of the 22 Browns starting quarterbacks since 1999 to have a winning record as a starter (10-6).
Hoyer spent three seasons as Tom Brady's backup and got his chance with the Browns in 2013. He led the team to wins over Cincinnati and Minnesota before tearing his ACL less than five minutes into a win over Buffalo.
ESPN.com Browns reporter Pat McManamon contributed to this report.