Bradford was 12 of 16 for 117 yards. Rookie Zac Stacy had 18 carries for 79 yards in his second straight start.
“To come out here and play a pretty much complete game was fun,” St. Louis defensive end Chris Long said. “Offense and defense were in complete sync.”
Brian Quick’s 4-yard touchdown reception extended the Rams’ lead to 24-6 early in the third quarter.
Rodney McLeod forced the fumble by Martin on the ensuing kickoff and Bates, an undrafted free agent, scooped it up and returned it 11 yards, diving into the end zone for the score.
Schaub was injured on Houston’s next drive when he was sacked by Chris Long. Some fans cheered while he was down after the injury, angering Houston’s players.
“For them to cheer about something like that, it just shows they have no class,” Andre Johnson said.
He was replaced by Yates. Schaub had thrown an interception that was returned for a touchdown in four straight games entering Sunday.
Yates made it five in a row for Houston when his first drive ended with the interception return by Ogletree, who high-stepped his way into the end zone as the home fans serenaded the Texans with boos.
The Rams took a 7-0 lead in the first quarter when Cory Harkey grabbed a 2-yard touchdown pass from Bradford. Kareem Jackson received a 40-yard penalty for pass interference early in that drive.
The Texans were driving later in the first when Ogletree forced a fumble by rookie DeAndre Hopkins which James Laurinaitis recovered and returned it 43 yards.
The Rams capitalized on the fumble with a 42-yard field goal by Greg Zuerlein to push the lead to 10-0 early in the second quarter.
Houston cut the lead to 10-3 with a 20-yard field goal by Randy Bullock.
Another 2-yard pass by Bradford — this one to Lance Kendricks — extended the lead to 17-3. An unnecessary roughness penalty on Brian Cushing for a late hit on Bradford helped that drive.