Brian Hoyer threw for 205 yards and two touchdowns and Houston's defense stifled Drew Brees in the victory.
Hoyer went 7 for 7 on the opening drive, capped by a 10-yard touchdown pass to Ryan Griffin, to make it 7-0 and give Houston a score on the opening possession for the first time this season.
The Texans (6-5) have won four games in a row for the first time since winning six straight in 2012.
New Orleans (4-7) dropped its third straight on a day when the team didn't score a touchdown for the first time since 2005, and Brees' streak of games with a touchdown pass was snapped at 45.
The last time the Saints didn't score a touchdown was Dec. 24, 2005 against Detroit and Brees' last game without a touchdown pass came on Nov. 29, 2012 against Atlanta.
Brees was 25 of 44 for 228 yards.
It was the first game since defensive coordinator Rob Ryan was fired and replaced by Dennis Allen. But the change didn't lead to better results and the Saints gave up several big plays and dropped their third straight.
Hoyer was 21 of 27 with an interception in his return after missing last week's game with a concussion.
An 8-yard touchdown run by Alfred Blue extended Houston's lead to 21-6 in the third. Griffin grabbed a short pass in the middle of the field and dashed for a 37-yard gain on that drive.
J.J. Watt had two sacks to push his NFL lead to 13 1/2 and would have had another one, but Brees threw the ball into the turf as Watt wrapped him up and was given a penalty for intentional grounding in the second quarter.
Kareem Jackson, who returned after missing four games with an ankle injury, intercepted Brees at the goal line in the third quarter and returned it 50 yards. He might have gone all the way, but Jadeveon Clowney, who was downfield blocking, got in his way, allowing the defense to catch up and bring him down.
Griffin knocked down the pylon on his way out of bounds on his touchdown on the first drive and the play was reviewed but upheld because the ball crossed the goal line.
The Texans pushed the lead to 14-0 when Hoyer threw a shovel pass to Cecil Shorts for a touchdown on the next drive.
Hoyer completed his first 11 passes before he was intercepted by Jairus Byrd. But the Saints couldn't move the ball and had to punt.
The Saints cut the lead to 14-3 on a 30-yard field goal in the second quarter. That score was set up by a 29-yard run by Mark Ingram.
New Orleans trailed 14-6 at halftime after a career-long 57-yard field goal by Kai Forbath.