Updated

Mario Williams handled the boos and the Houston blockers with ease.

What really ruffled the Buffalo defensive end was leaving his former home without a win.

Williams had a sack and a team-leading five tackles in his first game at Reliant Stadium since signing a $100 million contract with the Bills in the offseason, but Buffalo's offense couldn't get into the end zone Sunday in a 21-9 loss to the Texans.

"I think the biggest thing for me is if you go out and make a play and you get booed, I know I'm in your heart," he said. "That's the most important thing. If it had been quiet then I would have felt something different. But I know you're thinking about me."

Houston (7-1) made the then-shocking decision to take Williams with the top overall pick in the 2006 over offensive stars Vince Young and Reggie Bush. He piled up a franchise-record 53 sacks during his time in Houston, but the Texans let him go in the offseason when he became a restricted free agent.

He talked this week about being mad that the Texans didn't even try to negotiate with him once free agency began.

"You can say bitterness or whatever, but I was asked a question and I just gave the answer of what happened," he said. "Nobody has ever wanted to come out and say it."

Arian Foster ran for 111 yards and a touchdown and Andre Johnson added 118 yards receiving as the Texans used a balanced attack to continue to build on their franchise-best start.

The Bills (3-5) moved the ball effectively at times, but stalled in the red zone and had to settle for field goals.

"The story of the day for us was our inability to score touchdowns," said quarterback Ryan Fitzpatrick, who was 25 of 38 for 239 yards. "To me, that's where our issue was today, not being able to get the seven points. Driving it down the field and doing different things, and not being able to convert."

Buffalo was also stymied by its inability to run the ball, with C.J. Spiller and Fred Jackson combining for just 60 yards on 12 carries. The Bills rushed for a season-low 78 yards.

Bills coach Chan Gailey knows they need to get Spiller more carries.

"We would like to try to do that on a more consistent basis," Gailey said. "They take things away from you that you don't think they're going to do, but they did. They surprised us with a defense we hadn't seen very much and we had to alter."

Houston's offense finally started clicking on its third drive and Matt Schaub found Owen Daniels wide open for a 39-yard touchdown reception near the end of the first quarter to make it 7-0.

Spiller had a 28-yard catch and run early in the second quarter to get Buffalo to the Houston 19. But the next three plays netted 1 yard to bring on Rian Lindell. He shanked the 37-yard field goal attempt and it sailed wide right.

Williams sacked Schaub for a 4-yard loss on Houston's next drive. He jumped up and shook his finger at the Texans sideline after the hit, in a gesture that looked much like the one J.J. Watt does after his sacks, eliciting more boos.

"I was at least going to get one," Williams said. "I couldn't just come in here and not. I had to at least somehow, some way get one. I wish it would have been more. I definitely had some more opportunities."

Houston came away empty on that drive when Shayne Graham's 46-yard field goal was blocked.

The Bills got into the red zone two more times in the first half, but settled for field goals of 22 and 38 yards to leave the Texans up 7-6 at halftime.

The Texans pushed the lead to 14-6 with a 3-yard run by Foster early in the third quarter. That touchdown was set up by a 34-yard reception by Johnson two plays earlier. Buffalo cornerback Aaron Williams injured his right knee making the tackle on the catch by Johnson. Gailey didn't elaborate on his injury, but Williams left the locker room soon after the game on crutches.

Buffalo got within 5 with a 39-yard field goal by Lindell in the third.

A 5-yard touchdown reception by Garrett Graham made it 21-9 early in the fourth quarter. Johnson had 32 yards receiving to keep that drive rolling.

The Bills were driving late in the fourth quarter when Fitzpatrick was hit by Whitney Mercilus and fumbled. The ball was recovered by Houston's Quintin Demps.

Mario Williams tackled Justin Forsett for a 3-yard loss with less than two minutes left and waved his hand, bringing out the last chorus of boos from the home crowd.

NOTES: The win leaves the series between these teams tied at 3. ... Bills receiver Stevie Johnson was hit on the thigh and had to sit out late in the game. Gailey didn't have any more information on the injury. ... The Bills allowed three sacks after giving up a total of eight in their first seven games. ... Jackson went over 4,000 yards rushing in his career.

___

Online: http://pro32.ap.org/poll and http://twitter.com/AP_NFL