Buffalo Bills vs Steelers 2025: Defense, run game power comeback victory

Pittsburgh — It didn’t look good for the Buffalo Bills for most of Sunday afternoon’s AFC game against the Pittsburgh Steelers.
The offense was turning the ball over, and special teams continued to struggle with two more blunders on a penalty and a Matt Prater missed extra point.
But the Bills’ run game overwhelmed the Steelers, and Buffalo’s defense made key plays to help the Bills get back in the win column. Buffalo goes to 8-4 with a 26-7 win and remains a playoff contender, with the AFC East-leading New England Patriots set to play on Monday Night Football.
Here are a few immediate observations.
Defense steps up
The Bills’ offense looked like it was scared of its own shadow in the first half. Allen threw another interception, and running back James Cook had an uncharacteristic fumble. The Steelers have won every game they’ve played this season when they’ve not turned it over more than their opponent, so with two early giveaways the Bills had an uphill climb.
The passing game again looked out of sync in the first half. Allen completed just 50% of his throws and had a 26.7 passer rating after 30 minutes.
Pittsburgh got the ball first in the third quarter, and Buffalo’s Joey Bosa changed the game on the first play of the half.
Steelers quarterback Aaron Rodgers tried to buy time in the pocket for a receiver to get open, leaving Bosa with enough time to track him down from behind. The Bills’ edge rusher landed a monster hit on Rodgers, who fumbled the ball. Bills cornerback Christian Benford scooped up the ball and ran it in for a touchdown, giving Buffalo a lead it never gave back.
On the next drive, the Steelers were forced to put in backup quarterback Mason Rudolph after Rodgers suffered a facial injury and was taken to the blue medical tent. On Rudolph’s second pass, he threw it over the head of tight end Darnell Washington and into the waiting arms of Benford. The Bills forced two turnovers in less than two minutes of game time to take full command of the game.
Linebacker Shaq Thompson got the start for injured middle linebacker Terrel Bernard. Thompson has looked like the Bills’ best linebacker when he’s played this season. He made several big stops in the run game and finished with a team-high nine tackles. If Thompson can stay healthy, the Bills defense — even without key contributors like Ed Oliver and Michael Hoecht — could continue to trend up.
Joe Brady drive killer appears
The biggest criticism Brady has received this season has been his hard-headed nature when he finds a play that’s working. The Bills were able to run the ball in the first half; heck, they ran it all game long. James Cook had another tremendous showing, finishing with nearly 150 yards on the ground. The Bills finished with an Acrisure Stadium rushing record of 238 yards.
But on Buffalo’s second drive, Brady got second-year running back Ray Davis into the game. Davis has been chiefly invisible on offense this season, contributing only on special teams in the return game. But after a 15-yard run and a 12-yard run from Davis, it seemed the young back was finally getting some momentum.
Then Brady dialed up a run play on 1st down. He spams play calls when it’s evident that the entire stadium knows what’s coming. Davis was stopped for the loss, and the Bills weren’t able to gain a first down. The drive ended in a punt. The playcalling was better in the second half, but the Bills were also playing from in front. It didn’t seem they trusted anything down the field in the passing game.
Josh Allen gets it going
Allen was off the mark early in the game with several bad throws. The Bills brought receiver Keon Coleman back and new receiver Brandin Cooks made his season debut. Allen hit Cooks on a nice comeback route in the first quarter, but that was his only target of the game.
Allen looked determined to get the ball out quickly one week after getting beaten up by the Houston Texans. Mission accomplished on that front; Allen was only hit once while going back to pass, and wasn’t sacked a single time.
In the second half, Allen forced the action by getting involved in the run game. He ran it eight times in the game and took a few big hits. He was trash-talking with several Steelers defenders and seemed to lock in as a passer in the process. He only had two incomplete passes in the second half and finished with a pair of touchdowns, including a strike to Coleman on a critical fourth down.



