On Sun, Jan 4, the Minnesota Vikings closed out this regular season that began in Sept 2025 with a home finale against the Green Bay Packers, who were locked into the 7 seed in the NFC playoff picture following a defeat to the Baltimore Ravens that basically eliminated them from contending for the NFC North division title. The Packers would rest Jordan Love, who had fully recovered from his concussion suffered in Week 16 and use him as the backup. Malik Willis was inactive as well with a shoulder injury and Clayton Tune would instead serve as the starting QB for Green Bay. Meanwhile, the Vikings would see J.J McCarthy back on the field one last time in his redshirt rookie season after working back from a hairline fracture in his right hand following him missing the Week 17 Christmas Day win over the Detroit Lions. McCarthy would be back while working without a couple of key offensive assets as Aaron Jones and T.J Hockenson were both inactive for this season finale game. But Jordan Mason was back and the offensive line was a little more healthy with Brian O’Neill in at right tackle.
This rematch against Green Bay was a chance for McCarthy to redeem himself after a bad performance in Week 12 at Lambeau Field that saw him get concussed. When he returned, in the next two and a half games, McCarthy was very efficient and Minnesota’s offensive attack flourished before the right hand injury. This Packers defense would be less powerful and overwhelming, as Micah Parsons was out for the season with an ACL tear suffered in Week 15 and even more injuries occurred to the starters on the defense coordinated by Jeff Hafley. However, Green Bay would be debuting a new star defender in Tre’Von Diggs, who came over after being released by the Dallas Cowboys earlier in the week. So, this season finale against the 9-6-1 Packers was going to be played in Minnesota and this was the first time that the Vikings were playing their rivals from Wisconsin in a regular season-concluding game since 2015, when Teddy Bridgewater led them to a victory at Lambeau Field that clinched the NFC North under Mike Zimmer. The last time a “Border Bash” occurred for a season finale was in 2012 when Adrian Peterson nearly broke Eric Dickerson’s single-season rushing record in leading the Vikings to a victory over Green Bay that secured them a playoff berth at the old MetroDome. So, this game didn’t have as high stakes but it could have if not for a couple of tough luck losses for Minnesota. A chance to finish with five straight wins was worth playing for, though. Let’s break down how it all went.
The Vikings got the ball to start out the game and Tai Felton returned the ball to the 29-yard line. The first play from scrimmage was a McCarthy handoff to Mason, who ran it for 13 yards and a first down. McCarthy then threw his first pass of the game when he found Justin Jefferson(who needed 53 yards to crack 1,000 receiving yards for the season), who caught the ball and gained 18 yards for a first down into Packers’ territory. After a one-yard run by Mason, McCarthy aimed for Jefferson again and Jefferson caught it for a gain of 10 and a first down. On the next play, McCarthy had to scramble out of the pocket and he put down a stiff arm onto a Green Bay linebacker before taking on a hit by Keisean Nixon that forced him out of bounds. McCarthy proceeded to say something intense towards Nixon and got in his face, with the referees seeing it and throwing a flag for a rare taunting penalty on a quarterback. McCarthy admitted his mistake right away as the six-yard run was followed by a 15-yard penalty on himself. The following play was a handoff to Zavier Scott, who only gained two yards and on third down McCarthy completed his third pass of the drive to Jefferson, who gained 11 yards and was taken down well short of the line to gain. The field goal unit came on and Will Reichard made a 43-yard kick to give the Vikings an early 3-0 lead that could have garnered more points had it not been for McCarthy’s taunting foul.
The rest of the first quarter was mostly a scoreless affair with punts from both sides, as the Brian Flores defense forced a three and out on the first Packers drive of the game and the Minnesota offense had to start from their two-yard line on their next drive that picked up one first down, featured a McCarthy pass to Jordan Addison and had a weak run on third and short end the drive. Green Bay got a first down on a 10-yard run by Chris Brooks(getting the bulk of the carries with Emanuel Wilson as Josh Jacobs was being held out of this game), but Tune got strip-sacked on third down by Dallas Turner and the ball was recovered by Drake Dabney well behind the line of scrimmage. The punt by Daniel Whelan was a touchback and the next drive by the Vikings had McCarthy complete a pass to Jefferson that had the star wideout get within two yards of the 1,000-yard mark for a first down. But Ty Chandler got stopped on a third and short, with the ensuing punt by Ryan Wright pinning the Packers’ offense at the 10-yard line.
The first quarter ended after an illegal use of hands foul on Taki Taimani and the second quarter began with another bad set of downs for Green Bay, which was resting other key offensive starters that were active but not being used in the field of play. The Vikings’ next drive featured more inconsistency from McCarthy, who threw a deep pass way past Jefferson that was incomplete. The Packers picked up a first down on a QB run by Tune, but could not get past midfield again.
The Vikings started inside their 10-yard line on the next possession, with McCarthy having a couple of good completions to Josh Oliver and Jefferson for first downs into Green Bay territory. The pass to Jefferson put him above 1,000 receiving yards on the season, having him join Randy Moss and Mike Evans as the only wideouts to have six or more consecutive 1,000-yard seasons to start their careers in NFL history. McCarthy then found Jalen Nailor for a pass of 17 yards and a first down. Both McCarthy and Nailor hooked up again on a six-yard connection on third down, with Nailor being one yard short of the line to gain. On fourth down, McCarthy did a QB sneak that was ruled a first down on the field, but Matt LaFleur wanted to challenge the call on the field in thinking the ball did not reach the line to gain. After the review, the ruling on the field was upheld and Green Bay lost a challenge and timeout. On the next play, Mason had a 13-yard run that resulted in a first down, but McCarthy threw three straight incomplete passes in goal-to-go plays, including one on third and goal that was wide of Jefferson, who was still stuck on two touchdown catches for this season. Reichard came out to attempt a 25-yard field goal that was good and Minnesota had a 6-0 lead that could have been bigger.
The next Packers drive didn’t last long, as Emanuel Wilson ran backwards and lost 18 yards on the first play. After the two-minute warning, the Vikings got the ball back with good field position and a three-yard rush by Jefferson started the drive. McCarthy threw a short seven-yard pass to Oliver for a first down and then found Chandler for a two yard gain. Following an incomplete pass thrown towards Jefferson, McCarthy threw a deep pass that was caught by Nailor for a big gain of 26 yards and a first down. Kevin O’Connell called a timeout and following an incomplete pass to Addison, McCarthy had an amazing scramble pass that was caught by Ben Sims, who kept both his feet in bounds for an 18-yard completion for a first down. A couple of plays later, McCarthy handed the ball off to CJ Ham, who ran the ball into the end zone for his eighth career touchdown in the potential final game of his 10-year NFL career. Having two touchdowns in the last four weeks was gratifying to Ham, who is the Vikings’ Walter Payton NFL Man of the Year Award Nominee for the second straight season. The PAT by Reichard was good and the Vikings held a 13-0 lead over Green Bay.
A solid first half from J.J McCarthy, who had completed 13 of his 22 passes for 174 yards. Closing out his rookie season strong, McCarthy looked to have a solid second half. Meanwhile, the Vikings’ defense was basically having the equivalent of a preseason experience in playing against a third-string QB. A potential shut out was in order, as the defense pitched a shutout against the Washington Commanders in Week 14 to begin this current winning streak. Could the Packers keep up or would the Vikings win to finish above .500 and solidify a third-place finish in the NFC North?
The second half began with Green Bay possessing the ball and a couple of runs by Emanuel Wilson picked up a first down. Tune then completed a pass to wideout Jakobie Keeney-James for eight yards and that was followed by a first down run of 12 yards by Wilson. After a Wilson run of five yards, Brooks was tackled for a loss of three yards by Byron Murphy. On third down, Tune dropped back to pass but got sacked by Turner for a loss of seven yards. The Packers punted the ball back to the Vikings in having another empty drive.
The first play of the next possession was a McCarthy pass to Jefferson for eight yards. But the younger J.J wasn’t feeling so good in his throwing hand and took himself out of the game as he might have aggravated that hairline fracture once again. Max Brosmer came in to play at QB for the rest of the game as he completed a pass to Jefferson for a gain of nine yards. But he got sacked on a third and short play and Wright punted the ball downfield 55 yards. Green Bay picked up a few first downs before Tune got sacked on a third down by Theo Jackson for a loss of 11 yards.
The third quarter ended with a Brosmer pass to Ben Yurosek picking up a first down and to start out the fourth quarter Brosmer completed a pass to Jefferson, who ran for a gain of 16 and a first down. Following a five-yard run by Chandler, Brosmer threw a deep pass to Felton that was incomplete but there were flags on the field for two defensive penalties on Green Bay. One of them was pass interference by safety Jaylin Simpson and that foul was accepted as the ball was placed at the Packers’ 22-yard line. The Minnesota offense picked up a first down in the red zone on a Brosmer pass to Zavier Scott for eight yards. But on the next play, following a timeout taken by O’Connell, Brosmer was tripped up when going back into the pocket and he thought he was touched down by a Green Bay defender. But instead, he was actually tripped up by Justin Skule and the Packers forced a fumble with Brosmer standing in the pocket and they recovered the ball. Defensive end Barryn Sorrell went forward with the ball seven yards and another missed red zone opportunity occurred for the Vikings’ offense.
The Green Bay offense didn’t do anything off that fumble as Tune was sacked by Blake Cashman for a loss of ten yards and the ball was punted back into Minnesota territory. Mason had two strong runs to start out the drive as he ran for 19 and then 24 yards to get the ball into field goal range. Mason ran for five yards on the next play and then Brosmer completed a six-yard pass to Ham, who got a rare reception for the potential final offensive touch of his career. Brosmer completed another pass to Chandler for a gain of 11 yards and a first down in the red zone. Another inefficient campaign was waged in the red zone and Reichard kicked a 37-yard field goal through the uprights to conclude the final offensive drive of the 2025 season for the Vikings.
The Packers offense closed out the game and LaFleur, in an act of petty unsportsmanlike behavior, called a timeout with one second left to have his team’s field goal unit come onto the field to avoid getting shut out. Brandon McManus made a 24-yard chip shot to conclude the game with the final score being 16-3 in favor of Minnesota. The Vikings had successfully finished the season above .500 after a tough 4-8 start and finished in third place in the NFC North. Being a half game back of their seven-seeded rivals, Minnesota finished just a little short of the playoffs but had a “winning” record for the second straight season. Six of the nine games won by the Vikings in 2025 were in games started by J.J McCarthy, who was injured in two of those games with his right hand ailments. McCarthy finished his redshirt rookie season with 11 touchdown passes and 15 total touchdowns counting his four rushing TDs. With 12 interceptions in 10 starts, McCarthy had some tough moments in this unforgiving league with powerful defenses. But he still managed to grind through and speed track his development behind a banged-up offensive line and some good skill players around him. In his final game, McCarthy threw for 181 yards and had two scrambles for seven yards. Completing 61% of his passes, J.J did well in the virtual one half he played against Green Bay.
Justin Jefferson also closed out this season strong with eight catches for 101 yards, marking his third game with triple-digits in receiving yards in his sixth season. In a season filled with career lows in touchdown receptions and receiving yard average, Jefferson still managed to finish with over one thousand receiving yards. Jordan Mason closed out his first season as a Viking strong with 94 yards on 14 carries as he and Aaron Jones formed a good duo that was disrupted with injuries to both of them. Oddly enough, Harrison Smith didn’t record a tackle in his potential career finale as he got a standing ovation by the crowd at U.S Bank Stadium when he came out of the game. He already had a great performance on Christmas Day, so that game against Detroit probably serves as his final grand performance in his full career as a Minnesota Viking. C.J Ham is nearing the end of the road as well, with him playing ten seasons in Minnesota and having a good conclusion to his career. The last two members of the team who were a part of the team that won the Minneapolis Miracle game some eight years ago(not counting Eric Wilson, who had a four-season stint away from the Vikings) and stayed on the team for the whole time in between might have played their final games of their storied careers that occurred exclusively in the North Star State.
Even though this team fell short of its ultimate goal of making the playoffs and going on a deep run, a five-game winning streak to finish the season is the next best thing. Having a 4-2 record in divisional games just like last season is pretty impressive. Just a tough 4-7 record in out-of-division games kind of held this Vikings team back, with tough and close losses to some playoff-bound teams in the Pittsburgh Steelers, Philadelphia Eagles, Los Angeles Chargers and Seattle Seahawks. Heading into the offseason, managing the salary cap will be the top priority for the front office to address. After deciding who could be cut from the roster among the current 53-man roster, offseason acquisitions via free agency or the draft must be considered. Holes in the offensive line must be adequately addressed and the potential to acquire an experienced veteran QB to compete with McCarthy for the starting job or at least to be a good backup option could be potential moves made in Minnesota. For now, a 9-8 record has the Vikings with a better record than all the teams in a very poor division that they will play next season(the NFC South, won by the 8-9 Carolina Panthers via tiebreakers) and a third-place finish gives them matchups against the Indianapolis Colts(extra 17th game), San Francisco 49ers and Washington Commanders. The AFC East will be the out-of-conference division the NFC North plays in 2026, so the Vikings will play against two 2025 playoff teams from that division and two non-playoff teams. Overall, a 9-8 record for the first time in franchise history has the Minnesota Vikings with consecutive winning seasons for the first time since 2017-19 and the drought of not making the playoffs in consecutive seasons continues. Whatever happens in the offseason, the Vikings are arguably the best non-playoff team in the NFL this year and that is a good building block in itself.


