Chris Borland made one final case to get into the mix of 49ers linebackers needed to replace injured NaVorro Bowman.
Borland, a third-round pick from Wisconsin, returned an interception 34 yards for a touchdown, third-string quarterback Josh Johnson threw three TD passes and San Francisco beat the Houston Texans 40-13 on Thursday night.
Bowman is expected to miss at least half the season as he recovers from a devastating left knee injury sustained in the NFC championship game loss to the rival Seahawks.
Michael Wilhoite is listed as the starter, but defensive coordinator Vic Fangio said younger players would get a "good, healthy dose of snaps" to move up the depth chart.
Colin Kaepernick did not play for the 49ers. Blaine Gabbert played the first half and went 4 for 11 for 60 yards before Johnson took over.
Houston quarterbacks Case Keenum and Tom Savage both threw interceptions as they compete for the backup job behind Ryan Fitzpatrick. Keenum went 8 for 17 for 70 yards and Savage went 8 for 12 for 43 yards.
Keenum got the start and started 2 for 7. He got the Texans moving on his third series, completing three passes to DeVier Posey.
Rookie Chris Boswell finished the drive with a 41-yard field goal. Boswell is competing with Randy Bullock for Houston's kicking duties.
Gabbert started 1 for 4 and was sacked by outside linebacker Whitney Mercilus on the second-to-last play of the first quarter. Mercilus, a late first-round pick in 2012 now backing up Jadeveon Clowney, tackled LaMichael James behind the line on the next play.
Savage started the second quarter for Houston and completed his first six throws. His first miss was a third-down toss to Mike Thomas and Bullock kicked a 52-yard field goal for a 6-0 lead.
Gabbert completed a 32-yard pass to Derek Carrier to finally get the 49ers moving and tossed a 14-yard TD pass to Asante Cleveland with 1:18 left in the half.
Keenum returned with 1:12 left in the half and the ball at the Houston 19. He threw behind Posey and Chris Cook intercepted and returned it to the Houston 13. Johnson threw a touchdown pass to Bruce Ellington on the next play.
Phil Dawson kicked a 28-yard field goal in the third quarter. Borland then picked off Savage's next throw, stepping in front of tight end Ryan Griffin and racing to the end zone.
Texans rookie Andre Hal intercepted Johnson's pass and returned it 77 yards for a touchdown late in the third quarter.
Johnson threw a 5-yard touchdown pass to Kyle Nelson and Kassim Osgood blocked a punt out of the end zone for a safety in the fourth quarter.
Only three first-teamers played for the Texans -- right guard Brandon Brooks, nose tackle Jerrell Powe and defensive end Jared Crick.
Nose tackle Ian Williams, center Daniel Kilgore and right guard Joe Looney were the only San Francisco first-teamers to start, and Wilhoite and fullback Bruce Miller were the only other regular starters who played. Wilhoite only played on special teams.
Carrier left the game with a hamstring injury.