Schaub threw a touchdown pass to Lestar Jean, Holliday returned a punt for another score and Houston's defense stifled San Francisco in the Texans' 20-9 win over the 49ers on Saturday night.
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 5-foot-5 Holliday, who returned a kickoff 90 yards for a score in the Texans' preseason opener, sprinted 87 yards for a score in the fourth quarter.
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.
Jean, competing to be the Texans' No. 3 receiver, caught a 9-yard touchdown pass in the final minute of the half. An undrafted free agent in 2011, Jean had four catches for 42 yards. Andre Johnson, seeing his first action of the preseason, caught two passes, one for 43 yards.
The 49ers led the league in rushing defense last season and bottled up Arian Foster until the NFL'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 first half.
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 expected back at practice on Monday.
Randy Moss made three catches for 24 yards, his first receptions of the preseason.
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 placekicker's job.
Jacobs, acquired from the New York Giants in the offseason, was injured on his first carry, limped off with the aid of trainers and was taken to the locker room on a golf cart.
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.
Colin Kaepernick replaced Smith with nine minutes left in the half, and immediately completed a short pass to Moss. Coach Jim 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.
Kaepernick threw three straight incompletions and Akers kicked a 36-yard field goal to put the 49ers up 6-3.
Jean gained first downs on his first two catches late in the second quarter. Foster weaved for another first down before Jean broke open across the middle for an easy TD with 54 seconds left before the break.
Graham kicked a 49-yard field goal following a pass interference penalty on San Francisco cornerback Tramaine Brock. Johnson replaced Kaepernick in the third quarter and Akers kicked a 55-yard field goal to cut the 49ers' deficit to 13-9.
Holliday is trying to secure a roster spot and took another big step. He caught Andy Lee's punt, found a seam along the sideline in front of the 49ers' bench and sprinted to the end zone with 10:55 remaining.
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. He completed a 20-yard pass to backup tight end Logan Brock, then overthrew third-round draft pick DeVier Posey.