SAN FRANCISCO -- Candlestick Park's final exhibition game produced a flood of reassuring moments for the 49ers in Sunday night's 34-14 rout of the Minnesota Vikings.

Defensive dominance, a special-teams touchdown and Colin Kaepernick's closing spree of completions shared the spotlight.

Then came the showstopper: coach Jim Harbaugh's endorsement of Colt McCoy as the No. 2 quarterback.

"I feel real good right now that Colt's the backup," Harbaugh said. "Tonight, down after down, he was consistently good, and that's what we were looking for."

McCoy sounded confident in his status despite an NFL.com report earlier in the day that he might get traded. McCoy confirmed he restructured his contract Saturday night, but he wouldn't says if, as reported, he had his base salary slashed from $1.5 million to the league minimum of $630,000.

McCoy replaced Kaepernick in the second quarter and played into the fourth, finishing out a 91-yard touchdown drive. He was 11 of 15 for 109 yards with no touchdown passes and an interception for the third straight game.

"Jim and I had a great week, talked a lot, met a lot," McCoy said. "We've figured each other out a lot better, and I've played better."

McCoy said he didn't feel his job threatened with Thursday's signing of a fifth quarterback: veteran Seneca Wallace, who played the final three snaps Sunday. Also in the bullpen were B.J. Daniels, who produced an 8-minute touchdown drive in the fourth quarter, and Scott Tolzien, who did not play, reportedly because of back spasms.

The backup QB race will be moot if Kaepernick finishes as strong and healthy as he did Sunday. Kaepernick (7 of 13, 72 yards) played only in the first quarter (three series) and exited after an 84-yard touchdown drive.

Kaepernick completed his final six passes, including a 5-yard touchdown strike to rookie Quinton Patton. That ending overshadowed a rusty start: Kaepernick's only completion among his first seven passes was a 4-yard, shovel toss to Chad Hall.

Kaepernick has played only 33 snaps in three exhibitions, and Harbaugh said he's planning to play him in Thursday's exhibition finale at San Diego, adding, "That's subject to change." Kaepernick said he is ready for the Sept. 8 season opener but willing to play Thursday.

The 49ers defense looked in regular-season form, starting with a first-series turnover on Ahmad Brooks' sack and Aldon Smith's fumble recovery. Defensive tackle Justin Smith "had a burr in his saddle or something," Harbaugh said in reference to Smith's body-slamming Toby Gerhart for a 4-yard loss on third-and-one.

Both Smiths and most of the other starters were out of the game by the time the Vikings scored, doing so on a 1-yard catch by Zach Line 3 minutes before halftime. That touchdown pass followed a Perrish Cox pass-interference penalty in the end zone, and Cox later gave up a 7-yard, third-quarter touchdown catch to Joe Webb.

  • Lavelle Hawkins returned a second-quarter kickoff 105 yards for a touchdown, and he drew two penalties along the way. He got called for taunting (he pointed the ball at an opponent) and ultimately got penalized for removing his helmet. Hawkins drew another unsportsmanlike-conduct penalty when he followed a 22-yard fourth-quarter reception with a head-butt of fellow Cal product Desmond Bishop.

    "He's definitely got to do a better job of not getting emotionally hijacked after doing something great," Harbaugh said.

  • Running back Kendall Hunter saw his first game action since a Nov. 25 Achilles tear. Hunter's first carry gained 15 yards, and he finished with three carries for 13 yards.

  • Running back and punt returner LaMichael James said "I'm good" despite exiting in the third quarter with an elbow issue.

  • Nnamdi Asomugha began the game as the No. 3 cornerback for the first time this exhibition season, and he also tipped a pass that C.J. Spillman intercepted. Asomugha is competing with Tramaine Brock, who drew a pass-interference penalty on a third-down play in the third quarter.

  • Free safety Eric Reid, this year's first-round draft pick, made his first start and had a solid sideline tackle to stop a 30-yard punt return by Bobby Felder.

  • Jon Baldwin, acquired in a Monday trade with Kansas City, had two receptions for 23 yards after halftime.

  • Patton had a team-high four reception for 35 yards in his debut, having missed the first two exhibitions with a finger injury. Said Harbaugh: "I don't think the big stage bothers him or makes him nervous. He's a competitor. I admire that."

  • Vikings defensive tackle Kevin Williams injured his right knee on a third-quarter hit by lineman Joe Looney. Fellow defender Jared Allen termed it a "dirty play" during a live NBC interview. "He hit me pretty low," Williams said. "We'll watch it and see if it was dirty or not."

    Vikings coach Leslie Frazier said he'll likely ask the league to review the play for potential discipline on Looney, noting that his assistants were "pretty upset when they saw it."

  • Defensive tackle Lawrence Okoye, the former British discus thrower, injured his right knee late in the game. Linebacker Cam Johnson sustained a shoulder injury, and Harbaugh had no update on his status.

  • Wide receiver Kyle Williams has not played in any exhibition games but said on Twitter he "absolutely" will in the Sept. 8 opener.

  • Gerhart promptly replaced Vikings starting running back Adrian Peterson, whose exhibition debut consisted of two noncontact plays. Gerhart had seven carries for 20 yards.

  • Jewel Hampton took a McCoy handoff and scored on a 4-yard run to open the fourth quarter.

  • Three fans ran onto the field in the fourth quarter, one of whom was knocked down by Vikings receiver Jerome Simpson. A fourth fan got tackled by police after the game once he took the field.

    Thursday's game
    49ers (2-1) at San Diego 1-2), 7 p.m. KPIX