By Joe Buscaglia, Tim Graham, Alex Valdes

Josh Allen ran for two touchdowns and passed for another and the Buffalo Bills’ defense held on to secure a 28-21 victory over the Kansas City Chiefs on Sunday.

On the final play, the Bills pressured Chiefs quarterback Patrick Mahomes, whose Hail Mary heave was short of the end zone and batted down into the ground.

The Bills have beaten the Chiefs five straight times in the regular season but have failed to defeat them in the playoffs since Allen was drafted in 2018.

Bills’ offense gets it done

Buffalo’s offense was frustrating to watch at times, but it worked well enough to beat the Super Bowl favorites. Offensive coordinator Joe Brady and Allen have to hocus-pocus their way through the receiver deficiencies with screens and other short-distance routes, but James Cook, the tight ends and offensive line delivered ample force. Cook became the first running back in nearly two years to rush for 100 yards against the Chiefs.

Dalton Kincaid made 6 receptions for 101 yards and a touchdown. His 47-yard catch and run set up Ty Johnson’s 3-yard TD rush in the second quarter. About six minutes later, Dawson Knox caught a 30-yarder in the second quarter to pop the first of Allen’s two TD sneaks. — Tim Graham, senior NFL writer

Does Buffalo have enough at receiver?

But as the NFL trade deadline looms, worry remains over whether Buffalo has enough wideout weaponry. Elijah Moore and Khalil Shakir made chunk receptions in the third quarter, but overall they provided just dink-and-dunk support. Shakir was the lone wideout with more than two catches, and he averaged merely 6.1 yards. Curtis Samuel, Tyrell Shavers and Moore had one apiece. Keon Coleman, Buffalo’s top draft pick last year, posted another drab performance with two catches for 17 yards. — Graham

Huge effort by Bills’ defense

With the deck stacked against the Bills’ defense, facing a Chiefs offense that had been one of the most difficult to stop in the league while enduring several integral injuries before and during the week, it came up with a gargantuan effort against Mahomes and company. If there was one hole in the Chiefs’ offense, it was in their ability to run the ball, and the Bills challenged the Chiefs to move the ball on the ground when it came even close to a passing situation.

Even with that challenge, the Chiefs struggled to move the ball on the ground, and because the Bills turned all their attention to the passing game, they forced Mahomes into his least productive game of the season. Mahomes completed under 50 percent of his passes, with the Bills getting pressure on him all game long, all while sporting defenders who were not in the starting lineup for much of the season. Even with an unforeseen end-of-game Chiefs possession, the Bills’ defense came up huge. If it weren’t for their plan and the execution of that plan, the Bills likely wouldn’t have won. — Joe Buscaglia, Bills writer

Hoecht injury is brutal blow

One of the sparkplugs of the defense was edge rusher Michael Hoecht, who provided several pressures on Mahomes. While he provided an immeasurable impact on the game, the Bills may have to go quite some time without him after he suffered an injury early in the fourth quarter. Hoecht had to be helped off the field as he hobbled off, and at one point, the cart came out for him, to which he waved off.

A few moments later, the Bills ruled him out immediately with an Achilles injury, which is never a good sign for future availability. Hoecht remained on the bench the rest of the evening, watching his team. Now the Bills will have to hope it isn’t a long-term injury that forces them to shift their defensive personnel even more this season. — Buscaglia