Brock picked off the Texans' Matt Schaub and ran 18 yards for a quick 7-0 lead and the 49ers (3-2) went on to score 14 more points off Houston turnovers, winning a second straight following two consecutive losses.
Frank Gore carried much of the offensive burden for San Francisco, gaining 81 yards with a score on 17 carries.
Schaub was picked off three times in all, going 19-of-35 for 173 passing yards before being replaced by T.J. Yates late in the contest for the Texans (2-3).
Arian Foster picked up 98 rushing yards on 21 attempts for Houston.
Puzzle-maker slips 'Murdoch Is Evil' into Rupert Murdoch's Sunday Telegraph
Campus cop fatally shoots Texas student during traffic stop