The Vikings left Tampa Bay undefeated, but they didn’t leave with many answers on offense. Instead, an 86-yard punt return from Myles Price, three Will Reichard field goals and another punishing performance by Brian Flores’ defense carried Minnesota to a 23-16 win over the Buccaneers.
It was the kind of game where every mistake threatened to swing the result. Minnesota committed nine penalties, struggled to sustain drives and lost Justin Jefferson to an ankle injury on its opening possession. Tampa Bay’s offense struggled to find rhythm, and the Vikings made sure the Buccaneers never fully capitalized.
Minnesota’s best early jolt came from special teams. After Reichard opened the scoring with a 54-yard field goal, the defense forced a Tampa punt. Price caught Riley Dixon’s kick, followed a block by Jay Ward and raced 86 yards for a touchdown. It was the Vikings’ first punt-return score since 2016.
Price described the moment in his postgame interview: “I just seen somebody getting blocked and was like, ‘Hit it. Run, run. Don’t let them catch you.’” The block gave him a lane; his speed finished the play. The touchdown also rewarded a return unit that had come close to breaking a long one earlier in the season.
Tampa answered with a 40-yard touchdown pass from Baker Mayfield to rookie Ted Hurst, then added a field goal to tie the game. Minnesota’s offense had lost Jefferson early and couldn’t immediately replace his role in the plan. But Jordan Addison gave Kyler Murray a reliable target, and the pair produced the Vikings’ lone offensive touchdown.
Murray found Addison for a 30-yard sideline catch, then hit him for a 41-yard touchdown later in the drive. Addison adjusted to the deep ball and came down with it in the end zone, putting Minnesota back in front, 17-10. He finished with five catches for 90 yards and the score.
Jefferson played only six snaps before leaving with an ankle injury. He tried to return but was ultimately ruled out. Kevin O’Connell said after the game that Jefferson “got close a couple times,” but couldn’t get back to the level of explosiveness he needs to play effectively. The Vikings will evaluate him further.
Murray’s return to the lineup was uneven. In his first full game since suffering a concussion in Week 1, he completed 15 of 29 passes for 168 yards, one touchdown and one interception. Tampa’s pressure disrupted the passing game, and the Vikings had difficulty building sustained possessions after the touchdown drive. A weird tipped pass became Murray’s interception, though O’Connell said the quarterback had made the right read.
Murray acknowledged after the game that the offense “didn’t execute as good as I thought we would coming in.” He said it was difficult to lose Jefferson so early and that missed throws, penalties and other miscommunications accumulated. Still, he noted that it was his first full game in a long time and said he expects the offense to improve as the group gets more time together.
The defense gave Minnesota room to work through those growing pains. The Vikings sacked Mayfield six times, hit him 12 times and intercepted him once. Andrew Van Ginkel came away with a deflected pass after Blake Cashman pressured Mayfield, while the defensive front repeatedly made Tampa uncomfortable in the pocket. The Buccaneers managed only 57 rushing yards, and their offense was forced into difficult third downs throughout the afternoon.
Mayfield left late in the fourth quarter with a hand injury. Backup Jalon Daniels took over, and the Vikings got one more stop when Isaiah Rodgers intercepted a Hail Mary on the final play. It was Rodgers’ second straight week making a key play near Minnesota’s goal line: he recovered a fumble at the 1-yard line against Chicago before sealing Sunday’s win in his hometown.
O’Connell praised the defense in his postgame news conference, saying, “I thought our defense played phenomenal again.” He also emphasized that Minnesota’s offense has to take advantage of more opportunities. “We got to keep getting better on offense,” he said, adding, “I got to do a better job.”
Reichard helped keep the lead out of reach. He converted field goals from 54, 56 and 43 yards. Reichard is now 13-for-13 this season and has made 26 consecutive field goals.
Johnny Hekker also delivered after being elevated to replace the injured Brett Thorson. Hekker punted eight times for a 46.5-yard average, helping Minnesota manage field position in a game where both offenses spent plenty of time giving the ball back.
The Vikings’ nine penalties and limited production on offense made the finish more precarious than it needed to be. O’Connell said the team tried to protect the ball and let the defense rest, and Minnesota did win the turnover battle. But he was clear that a 3-0 start doesn’t mean the offense can stay where it is.
For a third straight week, Minnesota found enough in the other two phases to win. Price delivered the explosive play, Reichard supplied the points and Flores’ defense closed the door. The Vikings are 3-0, but the next step is turning those close, defense-led wins into more complete performances. Continuing this way, the Vikings will eventually stop coming out victorious.