NFL Matchup Hub 2026 › Week 9 matchup

Buffalo Bills at Minnesota Vikings

Week 9 · Mon, Nov 9 · Line: Bills -3 (Circa)

Every number below comes from the two team pages. The highlighted side and the arrow mark the better number in each row; ties are marked even, n/a = nothing to compare yet. No predictions.

Side by side

BillsVikings
#2Power rank ◀#13
6-1Record (straight up) even6-1
5-2Against the spread ◀4-3
2-1on the roadATS on the road / at home ◀1-2at home
4-2as favoriteATS as favorite / underdog ◀1-1as underdog
+4pts per gameAvg. cover margin ▶+4.8pts per game
+52Point differential ◀+47
12.4avg. opp. rankStrength of schedule so far ◀20.6avg. opp. rank
#12Net EPA rank ◀#14

Strength of schedule: average power rank of opponents at kickoff, lower = tougher, so the tougher schedule is marked. EPA ranks: Week 2 onward, #1 is best on both sides of the ball.

Bills offense vs. Vikings defense

Bills offenseVikings defense
#4EPA per play ▶#1
#6Dropback EPA ▶#1
#3Rush EPA ◀#13
#6Success rate ▶#2
#2029.2% of dropbacksPressure rate allowed vs. pressure rate ▶#141.2% of dropbacks

Vikings offense vs. Bills defense

Bills defenseVikings offense
#23EPA per play ◀#29
#24Dropback EPA ◀#28
#17Rush EPA ◀#31
#26Success rate ◀#29
#1728.9% of dropbacksPressure rate vs. pressure rate allowed ▶#1628.6% of dropbacks

Season so far

Every game in order, Week 1 first. Opp. rank = where I had the opponent in my power rankings in effect at kickoff. Recaps are mine, word for word.

Opponent's group in my power rankings at kickoff: Group A Group B Group C Group D Group F

Buffalo Bills

Week 1Sun, Sep 13 at Houston Texans Opp. rank #6Group B
W 36-31 Line -0.5 ATS: Covered (+4.5)

Bills 36, TEXANS 31 (HOU +0.5). This was a back-and-forth thriller with big plays by both teams on both sides of the ball. The Texans forgot to run the ball in the second half and Kamari Lassiter dropped a game-sealing interception. The Texans had a chance to win at the end, but the Bills sacked C.J. Stroud twice in the red zone. 409-381 BUF, 7.9-5.2 BUF

Week 2Thu, Sep 17 vs. Detroit Lions Opp. rank #12Group B
W 41-31 Line -5.5 ATS: Covered (+4.5)

BILLS 41, Lions 31 (BUF -5.5). The Lions repeatedly shot themselves in the foot with penalties, while the offensive line couldn't block because three linemen were sidelined. The Lions were down 27-7 and got most of their yardage in garbage time. 446-355 BUF, 6.5-5.7 BUF

Week 3Sun, Sep 27 vs. Los Angeles Chargers Opp. rank #25Group D
W 24-16 Line -7 ATS: Covered (+1)

BILLS 24, Chargers 16 (BUF -7). The Bills made plenty of mistakes in the first half with a James Cook fumble and two Justin Herbert interceptions, but the Chargers couldn't capitalize on them and then made mistakes in the second half. 350-348 BUF, 5.6-5.4 BUF

Week 4Sun, Oct 4 vs. New England Patriots Opp. rank #14Group C
L 26-29 Line -6.5 ATS: Did not cover (-9.5)

Patriots 29, BILLS 26 (BUF -6.5). Drake Maye lost a fumble but was otherwise back to 2025 form with his passing and rushing. This was a back-and-forth game with the Patriots scoring late to go up three and then Josh Allen, missing D.J. Moore who got hurt, throwing an interception. 405-340 NE, 6.3-5.5 BUF

Week 5Mon, Oct 12 at Los Angeles Rams Opp. rank #3Group A
W 37-34 Line +3 ATS: Covered (+6)

Bills 37, RAMS 34 (LAR -3). The Bills led 13-7 at halftime, but this game turned into a shootout in the fourth quarter and overtime. James Cook lost a fumble in overtime, but the Rams couldn't capitalize because of a blocked field goal. The Bills then moved into field goal position because of two long Josh Allen runs, and they converted on the decisive kick. 454-436 LAR, 7.5-5.9 BUF

Week 6Sun, Oct 18 at Las Vegas Raiders Opp. rank #19Group C
W 33-30 Line -4.5 ATS: Did not cover (-1.5)

Bills 33, RAIDERS 30 (LV +4.5). This was a high-scoring game where both teams had leads. The Raiders were up 7-3 and 13-10, but the Bills dominated the third quarter with James Cook. The Raiders rallied back to tie the game at 23, but the Bills scored 10 points toward the end. Tre Tucker caught a deep touchdown to get the cover, but the onside kick wasn't converted. 378-345 LV, 6.2-5.4 LV

Week 7Bye week
Week 8Sun, Nov 1 vs. Baltimore Ravens Opp. rank #8Group B
W 36-10 Line -3 ATS: Covered (+23)

BILLS 36, Ravens 10 (BUF -3). Lamar Jackson got hurt on the opening play of the game. Tyler Huntley got hurt soon after. The Ravens had no chance with Joey Fagnano. Josh Allen didn't play his best, but he didn't need to. 426-144 BUF, 5.6-2.9 BUF

Minnesota Vikings

Week 1Sun, Sep 13 vs. Green Bay Packers Opp. rank #19Group C
W 39-22 Line -1.5 ATS: Covered (+15.5)

VIKINGS 39, Packers 22 (MIN -1.5). The Vikings couldn't get anything going for most of the afternoon with Carson Wentz, while the Packers hit numerous big plays. Everything changed in the fourth quarter. The Vikings were bailed out by numerous defensive penalties on route to a touchdown and then they pressured Jordan Love heavily. 419-239 GB, 6.3-3.9 GB

Week 2Sun, Sep 20 at Chicago Bears Opp. rank #8Group B
W 9-3 Line +4.5 ATS: Covered (+10.5)

Vikings 9, BEARS 3 (CHI -4.5). This was a windy and wet game where both offenses struggled. Caleb Williams got hurt in the fourth quarter. Tyson Bagent got the Bears close to winning, but couldn't complete the drive. 297-246 CHI, 4.8-4.2 MIN

Week 3Sun, Sep 27 at Tampa Bay Buccaneers Opp. rank #23Group D
W 23-16 Line -1 ATS: Covered (+6)

Vikings 23, BUCCANEERS 16 (TB +1). The Buccaneers looked in disarray the entire game. They made many mistakes, including allowing a punt return touchdown and having a hold negate an 87-yard touchdown pass to Chris Godwin. Baker Mayfield got hurt at the end. 243-230 TB, 4.2-3.8 MIN

Week 4Sun, Oct 4 vs. Miami Dolphins Opp. rank #32Group F
W 15-10 Line -10.5 ATS: Did not cover (-5.5)

VIKINGS 15, Dolphins 10 (MIN -10.5). The Vikings dominated time of possession by 20 minutes and Malik Willis didn't even get 10 completions. They couldn't convert in the red zone. All the Dolphins could manage was a long touchdown run by Ollie Gordon. 336-198 SEA, 6.7-4.0 SEA

Week 5Sun, Oct 11 at New Orleans Saints Opp. rank #27Group D
W 23-13 Line -2 ATS: Covered (+8)

Vikings 23, SAINTS 13 (NO +2). The Vikings made some mistakes, including an Aaron Jones fumble in the red zone and a Myles Price returned fumble for a touchdown, but Kyler Murray completed most of his passes and made plays with his legs to get the victory. 364-142 MIN, 5.4-3.3 MIN

Week 6Bye week
Week 7Sun, Oct 25 vs. Indianapolis Colts Opp. rank #24Group D
W 16-10 Line -6.5 ATS: Did not cover (-0.5)

VIKINGS 16, Colts 10 (MIN -6.5). The Colts went up 7-0 and 10-6 early with some big Jonathan Taylor runs, but the Vikings blanked the Colts in the second half with the help of two missed field goals. Kyler Murray had a long scramble to set up the go-ahead touchdown. 275-218 MIN, 4.9-3.7 MIN

Week 8Sun, Nov 1 at Detroit Lions Opp. rank #11Group B
L 15-19 Line +3.5 ATS: Did not cover (-0.5)

LIONS 19, Vikings 15 (DET -3.5). The Lions moved the ball well in between the 20s but bogged down in Vikings territory. They finally got over the hump twice in the second half, while their defense clamped down on the Vikings except for one late drive. 384-266 DET, 5.6-5.3 DET

Injuries

Buffalo Bills

WR/TE

  • Keon Coleman DDL 3 (in)
  • D.J. Moore LDL 3 (in)
  • D.J. Moore out 5
  • D.J. Moore DDL 6 (out)
  • D.J. Moore LLL 8
  • Dalton Kincaid LLL 8

OL

  • Spencer Brown DDL 8

Int DL

  • Ed Oliver out 2
  • Ed Oliver DL 3 (in)
  • Ed Oliver out 5-6
  • Ed Oliver returns 8

Pass Rush

  • T.J. Parker LLF 8

CBs

  • Christian Benford DDD 4 (out)
  • Christian Benford returns 5
  • Dee Alford LLL 6 (out)
  • Dee Alford LDD 8

Minnesota Vikings

QBs

  • Kyler Murray out 2
  • Kyler Murray returns 3

RBs

  • Jordan Mason out 2-6
  • Jordan Mason returns 7

WR/TE

  • Jauan Jennings out 2
  • Jauan Jennings returns 3
  • Justin Jefferson out 4
  • Justin Jefferson LLL 5 (in)
  • Jordan Addison DLL 5 (out)
  • Jordan Addison returns 7

OL

  • Brian O'Neill LDL 2 (in)
  • Donovan Jackson out 5-IR
  • Christian Darrisaw out 5
  • Brian O'Neill LLL 5 (in)

Key: F = Full in practice · L = Limited in practice · D = Did not practice · IR = Injured Reserve · PUP = Physically unable to perform · CE = Commissioner's Exempt List. Numbers are game weeks.