clock menu more-arrow no yes mobile

Filed under:

Buccaneers vs. Bills recap: Still perfect at home after 33-27 overtime win

Tampa Bay blew a 24-3 halftime lead before walking it off in overtime with a 58-yard touchdown pass from Tom Brady to Breshad Perriman.

Buffalo Bills v Tampa Bay Buccaneers Photo by Mike Ehrmann/Getty Images

Fresh off of three straight victories (including back-to-back road wins), the Buccaneers (9-3) returned home to Raymond James Stadium on Sunday afternoon for a big-time matchup against the Bills (7-5).

Thought of by many in the months leading up to the season—and still some now—as a potential Super Bowl LVI preview, this matchup was always going to be an interesting one. Of course, Buffalo was one win away from meeting Tampa Bay in Super Bowl LV last season, so this one truly featured two of the top contenders in the NFL. The Bills, however, came in as losers of three out of their last five, including a 14-10 loss to the Patriots on Monday night that saw them give up 222 yards on the ground.

The Bucs continued to get healthier this week, with all three starting cornerbacks fit to start and Richard Sherman being activated from injured reserve to suit up as well. Jordan Whitehead remained sidelined and both Antonio Brown and Mike Edwards had to serve the middle game of their respective three-games suspensions, but the home team was pretty close to full strength otherwise.

With the Jets failing to provide them with help by beating the Saints earlier in the day, the Bucs entered play knowing they couldn’t win the NFC South on Sunday. That chance would have to wait until next Sunday night when they host the Saints, but a win was still very much needed to keep pace in the race for the NFC’s No. 1 seed—or a first-round home game at the very least.

Considering it was their toughest in some time, it’s not surprising that the odds were a little more split for the Bucs on Sunday. They entered as 3.5-point favorites, with ESPN’s FPI Matchup Predictor giving them a 57.5% chance to win their fourth straight game and 10th overall on the season.

It was a tale of two halves for the Bucs, as they ran up 303 first-half yards on their way to a 24-3 halftime lead. The second half got sticky for Tampa Bay, though, as Buffalo went on a 21-3 run to get within 27-24 with 4:53 to go. It eventually reached disaster mode, as the offense couldn’t put the game away and Buffalo responded with a 14-play, 70-yard field goal drive to send the game to overtime.

But in overtime, Tampa Bay emerged victorious. The defense got a stop and the offense got some breathing room after a 63-yard punt before the game-winner came on a 58-yard touchdown catch by Breshad Perriman from Tom Brady. With the 33-27 overtime win, the Bucs got to 10-3 on the year, extended their winning streak to four games and remained perfect at Raymond James Stadium in 2021.

Game Recap

The Bills won the toss and elected to defer, giving the ball to Tom Brady and the Buccaneer offense first. Jaelon Darden returned Tyler Bass’ short opening kickoff back to the Tampa Bay 24-yard line, so that’s where the team’s first possession began. The Bucs immediately found themselves behind the sticks due to a bad snap that Brady had to fall on at the 10-yard line, then he hit Chris Godwin for a gain of six to set up 3rd & 18. Brady and Godwin connected again for 15 yards on third down, but the bad snap proved to be costly as Bruce Arians decided to punt on 4th & 3 from the 31. A great special teams tackle from Grant Stuard at the Buffalo 18 then brought Josh Allen and the Bills offense out for the first time on the day.

Allen hit Devin Singletary for a gain of just one yard on first down, then threw to him again for nine yards and a first down on the next play. Andrew Adams knocked down the next pass from Allen at the line before the Buccaneer defense ganged up for a sack and a loss of seven to set up 3rd & 17. A check-down to Singletary on third down didn’t get enough, which led to Buffalo’s first punt of the day.

Starting their second offensive series from their own 33-yard line after a 10-yard punt return by Darden, the Bucs went to the ground and got three yards from Leonard Fournette before Mike Evans’ first catch of the day set up a 3rd & 3. Godwin’s busy first quarter continued on the next play, as he caught a six-yard pass to move the chains for Tampa Bay. After an incomplete pass on the next play, Evans drew a holding call to move the chains again and get the Bucs across midfield. Buffalo’s porous run defense then showed itself for the first time on the next snap, as Fournette found a hole thanks to a nice block from Rob Gronkowski, got a great downfield block from Donovan Smith and broke away for a 47-yard touchdown run. With Ryan Succop’s PAT, the Bucs had a 7-0 lead with 8:13 to go in the first quarter.

Stefon Diggs made his first catch of the day to start the next Buffalo drive, getting five yards before Allen picked up 14 yards and a first down on a designed run to the right side. A quick screen to Cole Beasley got another three yards on the next play, but Shaquil Barrett and Devin White came through to sack Allen for a loss of one on second down to set up a 3rd & 8. Tampa Bay’s defense was then able to get off the field, with Allen missing Gabriel Davis as Antoine Winfield Jr. came flying into his face on a blitz. The second Buffalo punt in as many drives went out of bounds at the 15-yard line, setting the Buccaneer offense up there with 5:19 to go in the first.

Fournette picked up four yards to start the Bucs’ next drive, then Tyler Johnson got in on the action with a five-yard catch to set up 3rd & 1. A Brady sneak moved the chains, then he took off on the next play for a 12-yard run and another first down. A nine-yard pass to Gronkowski and a short run by Fournette got Tampa Bay another first down near midfield before a slant over the middle to Godwin went for 20 yards to the Buffalo 31. A jump-ball thrown to Gronkowski in the end zone on the next play fell incomplete, but the Bucs kept things moving on the next play with a short throw to Johnson, who shook one defender silly before getting eight yards to set up 3rd & 2. Brady followe that by scrambling again to pick up another first down before a 16-yard screen pass to Fournette set up a 1st & Goal at the 4 and brought us to the end of the first quarter with Tampa Bay leading 7-0 and threatening for more.

Brady was sacked for a loss of one to open the second quarter and Fournette was stopped for no gain on second down, setting up 3rd & Goal at the 5. An incomplete pass intended for Godwin in the end zone then brought Succop out for a field goal attempt, which was a disappointing end to an electric drive. The 23-yard field goal did give the Bucs a 10-0 lead, though, capping off a 15-play, 80-yard drive that lasted 6:43.

A touchback by Bradley Pinion on the ensuing kickoff set the Bills up at their 25 to start their next possession. Emmanuel Sanders found himself wide open on the first play of the drive and caught a 25-yard pass from Allen to quickly get the ball to the 50. The Bills went backward briefly from there, with an illegal shift setting them back by five yards. Carlton Davis was shaken up on the play for Tampa Bay, but he gave a thumbs up to his defensive teammates as he walked off the field under his own power.

Another big passing play got the Bills well across midfield, with Allen hitting Diggs for a 24-yard gain to the Tampa Bay 31. Allen then found Gabriel Davis for a 21-yard gain to the 10 before Allen lost three yards on a run to bring up 2nd & Goal. Allen scrambled for 10 yards on the next play before Antoine Winfield Jr. stopped him to set up 3rd & Goal at the 3-yard line. Tampa Bay’s defense stood tall from there, with Allen throwing incomplete through the back of the end zone to bring Tyler Bass out for a 21-yard field goal attempt. He drilled it to get Buffalo within 10-3, but it was a win for the Buccaneer defense after it allowed some big plays.

A touchback on the next kickoff gave the Bucs possession at their 25-yard line as they looked to get back to a two-score lead. Brady and Godwin connected for a gain of 23 yards on the first play of the drive, then Gronkowski caught a pass over the middle to pick up another 18 yards to the Bills’ 34-yard line. Fournette picked up five more yards on the next play before an incomplete pass brought on a 3rd & 5 at the 29. The Bucs kept things going as Gronkowski drew a pass interference call to give Tampa Bay a fresh set of downs at the 18. Fournette caught a swing pass for five yards before an incompletion set up 3rd & 5 at the 13. There was no settling for a field goal this time, as Mike Evans made a great catch in the corner of the end zone for a 13-yard touchdown. Just like that, Tampa Bay’s lead was 17-3 after a seven-play, 75-yard drive that took just 2:17.

Allen and Dawson Knox linked up for nine yards to start the next Buffalo drive before Isaiah McKenzie picked up six yards for a first down. But Devin White halted the Bills’ momentum by dropping Allen for a sack and an eight yard loss to bring up 2nd & 18. Barrett chased the quarterback down again on the next play to force an incompletion, then Winfield came up to make a stop on a short pass to Knox, forcing another punt.

Starting from its 28 after the punt, Tampa Bay’s offense went back to work with a 14-point lead and 4:12 to work with before halftime. Brady threw to Gronkowski for a gain of 16 to start the drive and, two plays later, he hit Godwin for a 13-yard gain across midfield. Another six-yard pass to Godwin got Tampa Bay to the 38-yard line before Fournette moved the chains and brought us to the two-minute warning (with 1:56 to go in the half).

With a 1st & 10 at the 29 after the two-minute warning, the Bucs went to the ground and got just two yards, leading to a Buffalo timeout—its first—with 1:51 to go in the half. A four-yard pass to Gronkowski then brought up 3rd & 4, but not before another Bills timeout—this one with 1:43 to go. Brady was pressured heavily on third down and threw the ball up just short of the end zone and, sure enough, Evans was there to make the sideline catch to bring up a 1st & Goal from the 2-yard line.

Fournette got one yard on the next play and forced the Bills’ final timeout, then Brady snuck through for a one-yard touchdown with 1:29 to go before halftime. Succop’s PAT made it a 24-3 lead for the Bucs after a 10-play, 72-yard drive that took 2:43 off the clock.

A 10-yard pass from Allen to Beasley and an offsides penalty on Barrett got the Bills moving to start the next drive before heavy pressure from Barrett, Lavonte David and Joe Tryon-Shoyinka forced Allen into a bad throw that was intercepted by Richard Sherman, fresh off of injured reserve. That gave the ball back to Tampa Bay at its 45-yard line with one minute to go in the second quarter.

Unfortunately for Tampa Bay, nothing came about because of the turnover, as the offense went three-and-out in just 13 seconds. Pinion delivered just a 20-yard punt, giving the ball to the Bills at their 20 with 40 seconds and no timeouts left.

Allen scrambled for 22 yards on the first play of the next drive, getting out of bounds with 34 seconds left. Two straight incomplete passes and a delay of game set the Bills back to 3rd & 15 with 21 seconds to go, then another incompletion forced another punt. The Bucs had just one second to work with after a kick that pinned them at their own 2-yard line, so they simply took their 24-3 lead into the locker room.

After a touchback on the opening kickoff of the second half, the Bills went to work from their own 25 with plenty to do. They started their possession with a 12-yard pass from Allen to Davis, then Allen picked up another yard on a designed run to bring up 2nd & 9 at the 38. Diggs caught a six-yard pass to bring up 3rd & 3 after that before Sean Murphy-Bunting made a big stop on a catch by Davis to force a 4th & 2. Buffalo sent out the punt team and, rather predictably, went for the fake. Pat O’Connor stepped up and made the stop, forcing a turnover on downs to give the ball to Tampa Bay in plus-territory.

Taking over at the Buffalo 42, the Bucs went to Fournette on their first play of the half and he got two yards to the 40. Brady then threw behind Gronkowski on second down before a six-yard pass to Cameron Brate set up 4th & 2 at the 34. Tampa Bay went for it and was stopped on a Brady pass that got batted away, but an unnecessary roughness penalty on Buffalo after the play set its offense back 15 yards, bringing up a 1st & 10 from the 19.

The Bills, who didn’t hand off to a running back at all before the fake punt attempt, went to the ground to start their next drive and it was successful, as Singletary broke free for a 29-yard run. A 13-yard pass to Diggs then got the ball across midfield to the Buccaneer 39 before pressure from White forced a throwaway by Allen. A drop by Beasley then brought up 3rd & 10 before Beasley came up with a nine-yard catch to set up a 4th & 1 attempt. Allen picked up the first down on a designed run, getting four yards to the Tampa Bay 26. After a screen pass to Knox was blown up by White, David and Ross Cockrell for a loss of two, a pass out to Singletary got 10 yards. That set up an 18-yard touchdown run by Allen and, with the PAT, the visitors were within 14 with 7:29 to go in the third quarter.

Ronald Jones II got his first carry of the game to open the Bucs’ next drive and picked up nine yards, then he got another yard to move the chains on his second carry. A third carry went nowhere, as he lost two yards, but an offsides call on Buffalo moved the Bucs up to 2nd & 7 at the 38. Brady *just* missed Gronkowski on the next play to bring up 3rd & 7 before another incompletion brought Bradley Pinion out for a punt. He dropped one at the Bills’ 23-yard line, setting Allen and the offense up there with 4:53 left in the third quarter.

Matt Breida got 15 yards on two carries to open the next Bills’ possession before a five-yard run by Allen, who escaped Andrew Adams in the backfield to get those yards. Vita Vea knocked down Allen’s next pass at the line to bring up 3rd & 4, then Lavonte David made an excellent open-field tackle on Singletary to bring up 4th & 3 at the 45. Buffalo sent the punt team out and actually kicked it this time, with Jaelon Darden calling for a fair catch at the 10-yard line.

Up by 14 and needing to add on, the Buccaneer offense took the field with 2:11 left in the third quarter after three straight drives that went just about nowhere. Tampa Bay stayed on the ground to open the series, with Fournette getting two yards as the clock ticked under two minutes in the third. Brady found an open Evans for 24 yards on the next play, which gave the Bucs a whole lot of breathing room. A run for no gain by Fournette and a five-yard catch by Tyler Johnson set up 3rd & 5, but not before we reached the end of the third quarter with the home team leading 24-10.

Brady threw incomplete to start the fourth quarter, but holding calls on both sides negated the play and gave Tampa Bay another shot. Brady didn’t waste it, finding Evans over the middle between two defenders for 18 yards to the Buffalo 42. Fournette picked up seven more yards on the next play, then he got another 21 thanks in large part to a key block on the edge from Ali Marpet. A run for no gain and a near-interception set the Bucs back to 3rd & 10 before Godwin caught an eight-yard pass to bring up 4th & 2. The offense originally lined up to go for it, but ultimately settled for a field goal to extend the lead to three scores with 11:20 left to play.

A four-yard pass to Knox and a 10-yarder to Diggs—followed by an offsides penalty—got the Bills to the 44 quickly to start their next possession. An 18-yard run by Singletary and a 26-yarder by Allen got Buffalo inside the red zone with just over nine minutes to go. On the next play, Allen and Knox linked up for a 15-yard touchdown and after the PAT, the Bills were within 27-17 with 9:07 left.

A big return on the ensuing kickoff by Darden was brought back because of a holding call on Anthony Nelson, and that was just a sign of things to come on the drive for Tampa Bay. A run for no gain by Fournette and two incomplete passes led to a quick punt after the offense took less than a minute off the clock. To make matters worse, Pinion couldn’t get his punt past the 50, so Buffalo took over at the Tampa Bay 46 down just 10 with 8:08 to go.

Andrew Adams knocked a pass down at the line to start the next drive, but Allen managed to get to a manageable 3rd & 1 with a nine-yard pass to Beasley. Singletary picked up the first down with a short run on the next play, getting to the 35 as the clock ticked under seven minutes. Jason Pierre-Paul stopped Allen for no gain on the next play, but he responded with a 12-yard pass to Beasley. As the clock fell under six minutes, the Bills had a 1st & 10 at the Bucs’ 23. Another 12-yard pass—this one to Diggs—got Buffalo to the 11 with under five and a half minutes to go. A short pass to Singletary and a roughing the passer call on the Bucs gave the Bills a 1st & Goal at the 4. As the clock ticked under five minutes, Allen threw incomplete for Davis before finding him for a four-yard touchdown on the next play. With 4:53 to go, the visitors found themselves within 27-24.

Suddenly leading by just three, the Bucs had to go to work on the clock and either kill it or add to their lead to escape with a win. Starting from the 25, Brady threw to Brate for five yards before hitting Evans for an 11-yard gain to the 41. Fournette got four yards on the next play, forcing the Bills to call their first timeout with 3:35 left. The Bucs helped the Bills out from there, with an incomplete pass stopping the clock at 3:30 before a 3rd & 6 at the 45. The Bills Mafia contingent at Raymond James Stadium got loud on third down, but the Bucs converted—until offsetting penalties led to a replayed third down. On that replayed down, Brady got sacked and Buffalo called its second timeout with 3:16 left before the punt.

After Pinion’s punt was returned to the 23, the streaking Bills offense took the field with 3:05 to go and one timeout to work with. Allen rolled to his right on first down and found Diggs for a four-yard gain. Allen then scrambled for a first down and got out of bounds at the 35 with 2:24 to go before Devin White stopped Knox for a gain of four as we hit the two-minute warning before a 2nd & 6 at the 38.

After the break, Jason Pierre-Paul pressured Allen into an incompletion to force a 3rd & 6 before Ross Cockrell stopped Beasley for a two-yard gain. Before a game-deciding 4th & 4, the Bills called their final timeout of the game. Gabriel Davis came through with a huge five-yard catch to keep the game alive for Buffalo, bringing up a fresh set of downs. Allen threw incomplete on the next play thanks to some pressure from the defense, but he found Beasley for 15 yards to the Bucs’ 40 on the next play. Antoine Winfield Jr. stopped Beasley for a gain of one on the next play, but the Bucs called their second timeout as the clock hit 1:04 before a 2nd & 9 from the 39.

After the timeout, Allen found a wide-open Knox for a 24-yard gain to the Tampa Bay 15. An incomplete pass on the next play brought up 2nd & 10 with 35 seconds to go, but the Bills were in excellent position for at least a field goal—if not a game-winning touchdown. Allen scrambled for a gain of seven on the next play and stepped out of bounds with 28 seconds left. Good coverage by Carlton Davis on Diggs led to an incomplete pass on 3rd & 2, which led to a Tyler Bass field goal attempt. His 25-yarder tied the game at 27-27 with 22 seconds to go, meaning the Bucs had officially blown a 21-point halftime lead.

The Bucs got nothing on a return from Jaelon Darden on the ensuing kickoff, so the Bucs elected to take a knee and send the game to overtime.

The Bills won the coin toss in overtime, meaning they would get a chance to end the game with a touchdown. Pinion’s kickoff went for a touchback, which meant that Allen and his red-hot offense would start at their 25. Singletary got three yards on the ground to start the drive, then Beasley caught a three-yard pass to bring up a quick 3rd & 4. Allen missed Diggs on third down, so the Buccaneer defense had done its job in forcing a punt. That meant all the offense needed was a field goal to escape Raymond James Stadium as winners.

The bad news was that Matt Haack booted a 63-yard punt that rolled to the Buccaneer 6, giving Brady and the offense a long field to work with. Fournette got three yards on the first play of the Tampa Bay drive before Brady hit Godwin for a six-yard gain to bring up 3rd & Inches. Fournette barely reached the line to gain on third down and the play went to a replay review before the call on the field stood as called. That meant a first down for the Bucs at the 16.

Evans drew a defensive pass interference call on the next play, and the spot foul moved Tampa Bay all the way up to the 35. However, the Bucs lost seven on a screen to Fournette on the next play to put themselves behind the sticks. A 14-yard catch by Gronkowski helped make the third down more manageable, and right then and there the Bucs walked it off. Brady found Breshad Perriman across the field and the former UCF standout did the rest, escaping down the sideline for a 58-yard game-winning touchdown to send Raymond James Stadium into a frenzy.

With the win, the Bucs improved to 10-3 and moved to 6-0 at home on the year.

Quick Notes & Stats

  • With Sunday’s win, Tom Brady is now 33-3 against the Bills in his career.
  • The Bucs are now 20-0 in the past two seasons when scoring 30 points or more (including the postseason).
  • Tampa Bay is now 6-0 at home this season. The team’s winning streak at Raymond James Stadium is now at nine games, dating back to December of 2020.
  • In the second quarter, Chris Godwin eclipsed 1,000 receiving yards on the season, becoming the sixth player in franchise history with multiple 1,000-yard receiving seasons.
  • Late in the second quarter, Brady became the NFL’s all-time completions leader, surpassing Drew Brees.
  • Tampa Bay dominated the first half, taking a 24-3 lead into halftime while holding the advantage in first downs (18-8), total yards (303-158), total plays (43-27), yards per play (7.0-5.9) and time of possession (15:55-14:05).
  • Third downs were key in the first half as the Bucs jumped out to a 21-point lead. Tampa Bay was 5-of-8 on third downs, while Buffalo was 0-for-5. In the end, the Bucs were 8-of-16 on third downs while the Bills went 2-of-13. The visitors did go 2-of-3 on fourth downs, though, keying their comeback.
  • The Bucs were outscored 24-3 in the second half, forcing the game to overtime.
  • Tampa Bay’s defense got a key three-and-out to start overtime a short time after being on the field for the 14-play, 70-yard drive that tied the game.
  • The Bucs were penalized just four times for 24 yards in the game.
  • Tom Brady finished the night 31-of-46 for 363 yards and two touchdowns while adding 16 yards and a score on the ground.
  • Leonard Fournette ran for 113 yards and a touchdown on 19 carries in addition to catching four passes for 19 yards.
  • Chris Godwin was a huge key for the offense once again, catching 10 passes for 105 yards.
  • Mike Evans had a big day of his own, totaling 91 yards and a touchdown on six catches.
  • Rob Gronkowski chipped in as well, going for 62 yards on five catches.
  • Breshad Perriman’s 58-yard touchdown catch to win the game was his only catch of the game.
  • Devin White was big for the defense, racking up 10 tackles (seven solo), 1.5 sacks and two quarterback hits. Shaquil Barrett contributed to the pressure on Josh Allen as well, picking up 1.5 sacks of his own and FIVE quarterback hits.
  • Richard Sherman notched his first interception as a Buc in his first game off of injured reserve.
  • Josh Allen proved to be a problem for Tampa Bay, throwing for 308 yards and two touchdowns while running for 109 yards and a touchdown.
  • The game-winning 58-yard touchdown pass in overtime was the 700th of Tom Brady’s career (regular season + postseason).

The Buccaneers (10-3) remain at home next week, hosting the New Orleans Saints (6-7) on Sunday Night Football with a chance to clinch the NFC South for the first time since 2007. Kickoff is set for 8:20 p.m.