The Vikings gathered round the dinner table in the end zone.
It was a festive way to celebrate Case Keenum rushing for a 9-yard touchdown, his first score on the ground as a Viking and third of his NFL career, and Thanksgiving.
Stefon Diggs grabbed the football and used it as a centerpiece. Minnesota took a 13-point lead with 3:55 left in the first quarter, equaling its points total from last year's holiday trip to Detroit.
Keenum threw two touchdown passes and ran for another in a 30-23 victory on Thursday.
He was 21-of-30 passing for 282 yards and a passer rating of 121.8.
The Vikings (9-2) racked up 408 net yards of offense, including 136 on the ground but still needed an interception by Xavier Rhodes late in the fourth quarter to seal the deal.
Latavius Murray led Minnesota with 84 rushing yards and a score on 20 carries, and Adam Thielen made eight catches for 89 yards, including three in a row when things got a little dicey for the Vikings in the fourth quarter.
Everson Griffen recorded two sacks of Matthew Stafford, and Danielle Hunter added another and recovered an early fumble.
The Vikings defense forced a quick three-and-punt on the Lions opening drive of the game.
Minnesota followed with a 14-play, 80-yard drive that was capped with a 1-yard pass to Kyle Rudolph.
The Vikings converted three third downs on the way to their first touchdown. Keenum converted a third-and-6 with a 14-yard pass to Thielen, a third-and-4 with a 6-yard reaction run and a third-and-6 with a 7-yard pass to Diggs that moved the ball to the Detroit 12-yard line.
Murray followed with a 10-yard gash and a 1-yard run as the Vikings forced the Lions to go heavy against the run at the 1-yard line.
That made it the perfect time for play action and an easy toss to Rudolph in the back of the end zone.
The Lions were able to block Kai Forbath's extra point and also blocked a 53-yard attempt in the second quarter.
Detroit tried to answer, but Matthew Stafford and Ameer Abdullah fumbled a handoff two plays later, and Hunter recovered the ball for Minnesota at the Detroit 39.
After a tackle of Jerick McKinnon for a short loss, McKinnon gained 31 on a short pass from Keenum, who followed former Lions tackle Riley Reiff into the end zone a play later.
The Lions got on the board with 10:15 left in the second quarter via a 32-yard field goal by Matt Prater, but the drive missed an opportunity when Stafford was off the mark on a screen pass to Theo Riddick during a blitz by the Vikings.
Minnesota responded with a drive that lasted more than seven minutes but failed to yield points after the blocked field goal attempt.
The defense, however, forced another quick three-and-punt to give the ball back to the Vikings offense with 1:58 to go.
Keenum connected with Rudolph for a gain of 34, with Jarius Wright for 17 and then delivered a gem to Rudolph despite pressure for a 22-yard touchdown pass and a 20-3 lead with 37 seconds left before halftime.
The Lions, however, roared back thanks to a 41-yard reception by Stafford to Kenny Golladay to move the ball to the Vikings 34 and consecutive penalties called on Minnesota for another 28 yards. Rhodes was flagged for pass interference, and Eric Kendricks was whistled for a facemask away from the action on the play.
Stafford followed with a 6-yard touchdown pass to Marvin Jones, Jr. with 10 seconds left in the first half.
The Vikings opened the second half with a 46-yard run by Murray, back-to-back runs of 16 and 11 by McKinnon and a 2-yard touchdown by Murray for a 27-10 lead with 12:52 left in the third quarter.
The Lions drove 61 yards on 12 plays, keeping the ball for 5:44 on their first possession of the second half, but had to settle for a 32-yard field goal by Prater after a 14-yard catch by Darren Fells was reviewed and determined incomplete.
Detroit added a 50-yard field goal late in the third quarter and scored on a 43-yard touchdown from Stafford to Jones to make it a 27-23 game with 14:16 remaining. Stafford hurt his ankle on the play.
The Vikings regained rhythm on offense on their next possession with three straight passes to Thielen that put his season receiving yardage past 1,000. Minnesota kept the ball for nearly six minutes and flipped the field position, and then the defense forced a quick three-and-punt.
After taking over at its own 37, Minnesota drove 45 yards on nine plays, using 2:39 and netting three important points on a 36-yard field goal by Forbath for a 30-23 lead with 3:42 remaining.
Stafford was unable to hit Golden Tate on a third-an-7 against Mackensie Alexander, and Detroit went for it on fourth down with a pass intended for Jones that Rhodes batted up to himself for his second interception of the season.
Rhodes' pick gave the Vikings the ball at the Lions 16 with 2:50 remaining, and Minnesota ran another 1:35 of clock before lining up for a 25-yard field goal. The kick was blocked by Darius Slay, but he was flagged for offsides, negating a 75-yard return.
Minnesota was awarded a first down at the 3, and Keenum was able to line up in the victory formation with the Vikings seventh straight win.
Keenum was 14-of-18 passing for 189 yards and a passer rating of 147.5 in the first half.
It was the second straight year for Minnesota to visit Detroit on Thanksgiving and the eighth time in franchise history that the Vikings have played on the holiday. The Vikings are 6-2 in Thanksgiving games.