The Colts (1-1) have now won three straight home games dating to last season and improved to 10-0 in home games against the Vikings.
This one took more than Luck after Christian Ponder rallied the Vikings (1-1) for two touchdowns in the final 5½ minutes.
The Colts rookie finished 20 of 31 for 224 yards on a solid, not spectacular day. He was more impressive eluding pass rushers and throwing on the run than he was with his arm. Yet time after time, Luck escaped trouble, and he even rolled out of the pocket on the two completions that put Indianapolis in position for the winning kick.
He was helped by a defense that held Minnesota to two field goals in the first 54 minutes.
Minnesota finally tied the score on Kyle Rudolph's 6-yard touchdown catch with 31 seconds to go.
That proved to be too much time for Luck, who completed a 20-yard pass to Donnie Avery and called timeout. He completed a 20-yard pass to Reggie Wayne, then called another timeout. Then he got the Vikings to jump offside, putting the ball at the Vikings 35, and spiked the ball.
New Colts coach Chuck Pagano quickly sent in Vinatieri, the best clutch kicker in league history, who lived up to his nickname by knocking the 53-yarder through the uprights.
Indy didn't look anything like the team that got blown out by Chicago last week.
Instead, it started fast, took control just before halftime and kept Minnesota at an arm's distance for most of the second half.
But Ponder got the Vikings in sync late.
Minnesota made it 20-13 on a bizarre fourth-down TD pass that was tipped twice before winding up in the hands of Stephen Burton with 5:07 to play. The Vikings then forced a quick Indy punt, and Ponder again drove the Vikings down the field. This time, he found Rudolph for the tying score.
Luck answered by moving the Colts 45 yards in 23 seconds to set up the Vinatieri field goal.
Ponder was 27 of 35 for 245 yards with two TDs, but was sacked four times. Adrian Peterson ran 16 times for 60 yards, and Percy Harvin caught 12 passes for 104 yards.
Avery caught nine passes for 111 yards.
Minnesota 20, Indianapolis 23
Minnesota 3 3 0 14 20
Indianapolis 7 10 3 3 23
Min • FG Walsh 51, 7:48.
Ind • Allen 3 pass from Luck (Vinatieri kick), :49.
Min • FG Walsh 29, 11:38.
Ind • FG Vinatieri 26, 1:49.
Ind • Wayne 30 pass from Luck (Vinatieri kick), :07.
Ind • FG Vinatieri 45, 7:06.
Min • S.Burton 7 pass from Ponder (Walsh kick), 5:07.
Min • Rudolph 6 pass from Ponder (Walsh kick), :31.
Ind • FG Vinatieri 53, :08.
Attendance • 63,912.
First downs 19 17
Total Net Yards 327 278
Rushes-yards 26-95 30-84
Passing 232 194
Punt Returns 5-51 1-11
Kickoff Returns 4-111 1-19
Interceptions Ret. 0-0 0-0
Comp-Att-Int 27-35-0 20-31-0
Sacked-Yards Lost 4-13 2-30
Punts 4-48.0 5-53.6
Fumbles-Lost 2-1 0-0
Penalties-yards 11-105 7-51
Time of Possession 30:22 29:38
Rushing • Minnesota, Peterson 16-60, Gerhart 5-15, Harvin 2-13, Ponder 3-7. Indianapolis, D.Brown 16-45, Luck 4-21, Ballard 6-13, Avery 2-7, Allen 1-0, Moore 1-(minus 2).
Passing • Minnesota, Ponder 27-35-0-245. Indianapolis, Luck 20-31-0-224.
Receiving • Minnesota, Harvin 12-104, Jenkins 5-43, Rudolph 3-35, Peterson 3-20, Gerhart 2-17, Aromashodu 1-19, S.Burton 1-7. Indianapolis, Avery 9-111, Wayne 6-71, Fleener 2-16, Hilton 1-15, Moore 1-8, Allen 1-3.
Missed Field Goals • None.