The 5-foot-5 Holliday was a sixth-round draft pick in 2010, but missed his rookie year with a left thumb injury. He was hindered by a hamstring injury in training camp last year and spent most of the season on the practice squad.
With a glut of receivers ahead of him, including two incoming draft picks, Holliday knew when training camp began that his best chance to survive the final cut was to excel as a return specialist.
So far, so good.
"It's two weeks in a row," Kubiak said. "We still have a couple weeks to go, but he's definitely making a tremendous case for himself."
Holliday finished with 106 yards on four punt returns, and 61 yards on two kickoff returns. Early in the fourth quarter, Holliday caught Andy Lee's punt at the Texans' 13, found a seam along the sideline and sprinted to the end zone.
"Coach had told me to line up on the 10," Holliday said, "and normally when you line up on the 10, it's a fair catch but he said the punter was going to give us a knuckle ball. He said, 'Don't fair catch it.' Just try to make something happen.' It feels good, but I still got a lot of work to do."
Schaub completed 11 of 14 passes for 128 yards in two quarters, near-perfect in his second game since fracturing his right foot in Week 10 last season.
The Texans (No. 6 in the AP Pro32) held the 49ers to 267 yards and stopped the 49ers twice on fourth down. Alex Smith completed 5 of 9 passes for 49 yards for the 49ers (No. 4). He was sacked twice by the Texans' first-string defense, which seemed to bring pressure every time Smith dropped back.
"Most self-inflicted by me," Smith said. "On the first play, a miscommunication with me and the other 10 guys in the huddle, and resulted in a hit. Then down the line, I tried to make a couple of plays by getting out of the pocket, and they're good up front."
The 49ers led the NFL in rushing defense last season and bottled up Arian Foster until the league's leading rusher in 2010 weaved 24 yards to the San Francisco 12 late in the first half. Foster carried 10 times for 46 yards in the opening two quarters.
49ers running back Brandon Jacobs left in the first quarter with a left knee injury after a hit by Texans cornerback Kareem Jackson, and second-round pick LaMichael James limped off in the fourth quarter.
San Francisco coach Jim Harbaugh said Jacobs will "miss a little time," but that his injury isn't serious. He said James is fine and is expected back at practice on Monday.
Randy Moss made three catches for 24 yards, his first receptions of the preseason.
"There's always good, there's always some bad so we'll just keep climbing," Harbaugh said. "That's the thing we're going to need to do right now. It was a 'grind-it-out' kind of game."
Schaub went 4-for-4 on Houston's opening drive, and Shayne Graham booted a 48-yard field goal for a 3-0 lead. Graham is competing with fifth-round draft pick Randy Bullock for the kicking job.
Schaub started the next series with a deep pass to Johnson, who outleaped two defenders to make the catch. The drive stalled there, and Bullock missed a 51-yard field-goal attempt.
"Yards are hard to come by against that type of group," Schaub said. "But you've just got to stick to your plan and stay true to who you are and try to find plays in their defense. We were able to do that."
Colin Kaepernick replaced Smith with nine minutes left in the half, and immediately completed a short pass to Moss.
Harbaugh said this week that Kaepernick is leading the competition for the backup role against Scott Tolzien and Josh Johnson, who both played in the second half.
Former Houston Cougars quarterback Case Keenum came in with seven minutes left in the fourth quarter. The undrafted Keenum, who became the Football Bowl Subdivision's career leader in yards passing (19,217) and touchdown passes (155) in college, is competing with offseason pickup John Beck for the No. 3 quarterback role in Houston.