The deal is worth $62 million, with $24.75 million guaranteed, Fox 26 in Houston reported.
Schaub, acquired in a 2007 trade from Atlanta, announced his new deal and thanked team owner Bob McNair, general manager Rick Smith and coach Gary Kubiak after the Texans opened the season with a 30-10 win over Miami.
Schaub completed 20 of 31 passes for 266 yards and a touchdown pass to Andre Johnson on Sunday.
"I'm very excited to continue to make Houston our home," Schaub said. "My wife and I are raising our kids here, so we're very excited to be a part of this community. Just excited for this opportunity."
Schaub, 30, missed games with injuries in 2007 and '08, then played all 16 games in 2009 and 2010. He fractured his right foot in Week 10 last season, and this was the final year of his contract.
"At no point was this ever going to be a distraction for me," Schaub said. "I'm excited for it to be done and over with so every ounce of focus and energy can be directed to this season and what we have going, and not being out there, as something down the road."
The Texans also extended defensive end Tim Jamison's contract by two years, now through 2014.
Schaub says he intends to finish his career in Houston.
"We've got a tremendous organization," Schaub said, "an owner that really cares about us as players in providing an environment to win. I'm really excited about that."
Schaub led the NFL with 4,770 yards passing in 2009, when he made the Pro Bowl. He then threw for 4,369 yards and 24 touchdowns in 2010.
Information from The Associated Press was used in this report.