SAN DIEGO — Colin Kaepernick looks ready for his first full season as a starter.
Mike McCoy's San Diego Chargers look as if they could use a few more weeks of training camp.
Kaepernick threw a touchdown pass to cap his only drive, and the San Francisco 49ers roughed up the Chargers 41-6 in the preseason finale for both teams Thursday night.
Kaepernick faked an inside handoff and then threw a short sidearm pass to Quinton Patton, who deked rookie free agent Marcus Cromartie and completed the 43-yard scoring play.
Coach Jim Harbaugh started the first-team offense of the 49ers (3-1), while McCoy sat his first-team defense.
The Chargers (1-3) had a bad night.
Backup quarterback Charlie Whitehurst was sacked four times in the first half and third-stringer Brad Sorensen threw two interceptions in the second half.
San Francisco linebacker Cam Johnson sacked Whitehurst twice and blocked a punt by Mike Scifres and recovered it in the end zone for a touchdown late in the third quarter.
The defending NFC champion 49ers open at home against Green Bay a week from Sunday.
The Chargers, who've missed the playoffs for three straight seasons, open at home against Houston a week from Monday.
Chargers wide receiver Robert Meachem, who has a guaranteed $5 million salary, had four catches before sustaining a concussion. He's been a forgotten man since dropping a potential touchdown pass in a 7-6 loss at Cleveland last season.
Niners free agent pickup Lavelle Hawkins had a spectacular 45-yard touchdown play in the fourth quarter.
A short pass from B.J. Daniels bounced off Hawkins' hands and into the air, but the receiver grabbed it before being hit by rookie safety Jahleel Addae. Addae didn't wrap up, and Hawkins swept to the left and finished the scoring run for a 34-6 lead.
Kaepernick is heading into his first full season as a starter after making 10 starts last year and leading the 49ers to the Super Bowl, where they lost to the Baltimore Ravens.
With Harbaugh playing his starters, the mismatch paid off as the 49ers moved 77 yards in seven plays for the score.
Kaepernick completed 3 of 4 passes for 64 yards for a rating of 156.2. He didn't have any carries.
Colt McCoy, selected as the backup last weekend after he restructured his contract, replaced Kaepernick and played into the third quarter.
McCoy also threw a touchdown pass, a 5-yarder to Anthony Dixon in the second quarter.
McCoy completed 8 of 15 passes for 56 yards.
Daniels also threw a 15-yard touchdown pass to rookie Chuck Jacobs. Daniels had a 36-yard run on that drive.
Whitehurst was 9 of 12 for 86 yards, with one interception. Max Starks, who apparently has lost the competition for the starting job at left tackle to King Dunlap, was repeatedly beaten and gave up three sacks. The other sack was allowed by right tackle Mike Harris, who played left tackle last year as a rookie.
Brad Sorensen, San Diego's rookie third-string QB, was intercepted twice.
San Diego's Nick Novak kicked field goals of 41 and 48.
Chargers rookie linebacker Manti Te'o was back in his walking boot as he watched the game from the sideline in a sweatsuit. Te'o sprained his right foot in the exhibition opener against Seattle on Aug. 8. He Te'o was out of the boot Tuesday, although he hasn't been cleared to practice.