SAN FRANCISCO -- Andrew Luck faked out the defense, ran untouched into the end zone for a 6-yard touchdown and emphatically threw down the ball with a little extra oomph.
Even he thought it might be a career-best spike.
"It was nice to score," he said matter-of-factly of the moment.
Jim Harbaugh's former quarterback sure outplayed his current one, and it wasn't even close.
Trent Richardson scored a 1-yard touchdown on his first carry in his Colts debut after being acquired on Wednesday from the Browns. He was drafted two spots behind top-pick Luck last year.
Luck kept coming through again to give Indianapolis (2-1) more opportunities.
"I know he's grinning from ear to ear," Colts coach Chuck Pagano said. "I've never seen him smile the way he was smiling after this one."
This marked Colin Kaepernick's first home loss at Candlestick Park as a starter.
Frank Gore ran for 82 yards after going for 60 total in his first two games, but there were few bright spots for Kaepernick as San Francisco (1-2) struggled to establish a passing game with tight end Vernon Davis sidelined by a hamstring injury. The defense committed numerous costly penalties for the third straight week.
Luck completed his initial six passes and spoiled the home team's reunion day between coaches on both sides who know each other's tendencies dating to their days at Stanford.
The Colts sure appeared to be better prepared.
Luck sent third-year coach Harbaugh to consecutive losses for the first time. He was happier about the fact his two sisters who attend Stanford got to see him play.
"I wasn't caught up in, 'Oh my gosh, I'm going up against Coach Harbaugh, (Greg) Roman and (Vic) Fangio," Luck said. "I figured any time you play this sport, coaches and players come and go so much that you always end up going against someone that you played for or played with or had a good relationship with."
Before Sunday, Harbaugh was 7-0 following a defeat -- and Harbaugh faced criticism for playing and starting Aldon Smith two days after the linebacker was arrested and jailed on suspicion of driving under the influence and marijuana possession.
49ers CEO Jed York said after the game Smith would seek treatment and miss Thursday's game at St. Louis and perhaps be away from the team longer. Smith apologized to "everybody I let down" while acknowledging he has a problem and will fix it.
Kaepernick had been 4-0 on his home field since becoming a starter last November. This time, his 49ers were 10½-point favorites, but looked nothing like the better team in getting thoroughly outplayed.
He completed 2 of his 8 first-half passes and wound up just 13 for 27 for 150 yards with an interception and three sacks.
"There's no one thing, we just didn't execute this offense," Kaepernick said.
The 49ers had six penalties for 48 yards and didn't look much better than they did in their five-turnover, 29-3 loss at division rival Seattle last week.
Kendall Hunter ran for a 13-yard score late in the first quarter, but San Francisco has scored 10 total points the past two games.
Richardson carried 13 times for 35 yards, giving the Colts quite the 1-2 punch with Bradshaw's 19 rushes for 95 yards.
Luck took advantage of a pair of penalties by San Francisco to open Indianapolis' seven-play, 80-yard scoring drive over the opening 3:40 for a 7-0 lead.
On the Colts' first play from scrimmage, safety Donte Whitner received a 15-yard unnecessary roughness penalty when he led with his helmet on a hit against Bradshaw after a 3-yard catch. Tarell Brown was flagged for pass interference on the next play.
Another penalty on Brown, for holding, gave the Colts a first down at the 23 midway through the second quarter and set up Vinatieri's 43-yard field goal. He kicked a 41-yarder in the third quarter.
Brown was penalized yet again for pass interference midway through the fourth.
Luck kept drives going with clutch plays as the Colts won the third straight meeting with San Francisco.
On third-and-9 and throwing from near his end zone late in the third, Luck hit Reggie Wayne for a 25-yard gain in which Wayne broke through several tackle attempts.
All-Pro linebacker Patrick Willis went down on the play and was helped off the field moments later with a groin injury that sidelined him for the rest of the game.
Willis declined to speak to reporters after the game. Harbaugh said he did not know the extent of Willis' injury.
The Colts busted through San Francisco's defensive line, which lost nose tackle Ian Williams to a season-ending ankle injury last week.
"It's one of those games you look back on down the road and say, 'This was a signature win, maybe one that helped you to do great things, that helped you accomplish the program you built,' " Pagano said.
49ers special teams standout Bubba Ventrone left after the first quarter with a concussion. ... San Francisco TE Vernon Davis' streak of 98 straight games played was snapped. ... The 49ers had their regular-season winning streak vs. AFC opponents end at five. ... Gore has 2,687 career yards receiving, moving into second place in franchise history for a RB behind Roger Craig (4,442).
Information from ESPN.com's Bill Williamson and The Associated Press was used in this report.
Source: Washington WR Terry McLaurin, RB Antonio Gibson expected to play vs. Chiefs
Washington is expected to have WR Terry McLaurin, RB Antonio Gibson available for Sunday's game against Kansas City.
Kansas City Chiefs WR Tyreek Hill (quad) expected to play vs. WFT, source says
Chiefs receiver Tyreek Hill, listed as questionable for Sunday's game due to a quad injury, is expected to play against Washington, a source told ESPN's Adam Schefter.
Source: Los Angeles Chargers WR Mike Williams (knee) expected to play vs. Baltimore Ravens
Mike Williams, listed as questionable with a knee injury, is expected to play Sunday at Baltimore, a source told ESPN's Jeremy Fowler.
Paul Salata, creator of Mr. Irrelevant Award, dies at 94
Paul Salata, who created the Mr. Irrelevant Award that honors the last selection of the NFL draft after playing football at USC and in the NFL and Canadian Football League, died Saturday. He was 94.
Las Vegas Raiders activate Marcus Mariota off injured reserve in time for road date vs. Denver Broncos
After his "good week of practice," the Las Vegas Raiders activated backup quarterback Marcus Mariota off injured reserve on Saturday, as interim coach Rich Bisaccia hinted on Friday in anticipation of Sunday's game in Denver.
NFL 'right where we need to be' in crackdown on taunting penalties
NFL Officials threw 11 flags for taunting in the first two weeks of this season -- the same number called in the entire 2020 season for the same foul -- but only three over the next three weeks.