On a night when San Francisco's offensive stars sat out, the 49ers got more big plays on the other side of the ball to cap their first unbeaten preseason in 18 years.
Jehuu Caulcrick caught a 2-yard touchdown pass from Nate Davis with 8:41 left and Joe Nedney added a 25-yard field goal. San Francisco (4-0) went undefeated in its exhibition schedule for the first time since a 5-0 showing in 1992.
Jeremy Williams returned a punt 93 yards for a touchdown, then caught a 29-yard pass to set up Curtis Brinkley's 2-yard TD run late in the third quarter for the Chargers. But Curtis Taylor stripped Williams after a catch to force a fumble and give San Francisco the ball back with 6:54 to play.
Williams also was the intended receiver on San Diego's last-ditch effort on fourth down in the final minute. Tramaine Brock picked off Jonathan Crompton's pass with 48 seconds left.
San Francisco's offense looked little like the unit it will be for the team's Sept. 12 opener at NFC West rival Seattle. No Alex Smith at quarterback, no Frank Gore or Brian Westbrook at running back, no Michael Crabtree at wideout or Joe Staley leading the line at left tackle.
Chargers quarterback Philip Rivers also got the night off.
The Niners did go with their regular starting on 11 on defense — but for one series.
Lawson blitzed untouched toward Billy Volek on San Diego's opening drive of the second quarter, batted the ball with both hands and turned to catch it for an interception.
"Man, first of all, I got to give a shout out to my DBs and other linebackers for covering and allowing me time to get back there," Lawson said. "I was just fortunate enough to, I got my hand in the way and tipped the ball and it floated in the air. All it was after that was just catching it."
Crabtree has never played a preseason game, perhaps one of the things that irked teammate Vernon Davis when the Pro Bowl tight end verbally confronted Crabtree during Wednesday's practice. Coach Mike Singletary intervened and talked to both players in the locker room away from the rest of the team. Crabtree, the Niners' 10th overall pick in the 2009 NFL draft out of Texas Tech, finally ended a 71-day contract stalemate last October.
While he had been nursing a neck injury, he hasn't been limited in practice and Singletary said before last Saturday's exhibition in Oakland he expected the wideout to play a quarter.
Dixon finished his impressive exhibition campaign with another nice game, getting a key block from rookie guard Mike Iupati.
Carr started in place of Smith and was solid running the offense before giving way to Nate Davis midway through the second quarter.
Mike Tolbert ran 32 yards for a first down on third-and-10 during San Diego's first possession, but the Chargers (1-3) didn't give themselves much chance early and struggled to move the ball. San Diego, coming off three straight playoff berths, gave up 552 yards to the Saints in a 36-21 loss at New Orleans last Friday night.
Matt Wilhelm sacked Volek for an 11-yard loss late in the first quarter. This defense looks to be one of the NFL's best again.
"I feel like we just picked up where we left off last year," said nose tackle Aubrayo Franklin, who started in his first exhibition game. "This is our fourth year playing as a unit, so we pretty much know the defense and know how each other are supposed to fit."
Franklin ended his lengthy holdout last Saturday by signing a $7.003 million franchise tag tender.
Notes: 49ers WR Jason Hill was poked in the eye in the second quarter. ... Dixon, a sixth-rounder, finished the preseason with 74 carries for 300 yards and three TDs. He did sustain a ribs injury Thursday that wasn't considered serious. "I'm glad I got a chance to go through this so I know what to expect down the road," he said. "I'm kind of bruising a little bit, but I'm all right." ... Chargers OLB Shawne Merriman didn't play because of an Achilles' tendon injury. ... 49ers C Eric Heitmann, out with a broken left leg, is no longer using crutches. "Feels good," he said as he walked onto the field before the game. ... Niners rookie Kevin Jurovich made a 29-yard catch to set up the go-ahead score late.