The Bucs returned to Raymond James Stadium Saturday night to close out the preseason, hosting the Buffalo Bills in search of their third-ever undefeated preseason and their first since 1999.
As planned, none of Tampa Bay’s starters saw action in the preseason finale, though a wrinkle was thrown into the team’s plans when Teddy Bridgewater was ruled out ahead of kickoff due to an illness. That left only Kyle Trask and Connor Bazelak to cover four quarters against Buffalo.
The Bills took an early 7-0 lead and went on to lead for the rest of the night, keeping the Bucs at an arm’s length the whole way through on their way to a 23-19 win, leaving Tampa Bay with a 2-1 finish in the 2025 preseason.
Here’s a recap of all the action from Saturday night’s exhibition finale at Ray Jay:
Bills 23, Bucs 19
The Bucs received the opening kickoff, but did little of note with the ball before punting it away around midfield. Buffalo, led Saturday night by quarterback Shane Buechele, went right to work on the Tampa Bay defense. A holding penalty by Kindle Vildor and a pass interference penalty called on Shilo Sanders aided the drive, and Buechele chipped away little by little to get the Bills down the field.
The 12-play, 80-yard drive lasted 6:22 and ended in a 1-yard touchdown run by Frank Gore Jr., giving the Bills an early 7-0 lead.

Bills QB Shane Buechele and Bucs OLB Chris Braswell – Photo by: USA Today
Rookie running back Josh Williams tried to spark the Bucs on the ensuing kickoff, taking the ball 39 yards to the Tampa Bay 48. But outside of a Tez Johnson catch for a gain of nine, the offense couldn’t get going. That led to a second straight Riley Dixon punt, with this one also going for a touchback.
The Bucs defense forced a three-and-out on the Bills’ second possession before the offense finally got things going. Kameron Johnson started things off with a 22-yard punt return, then Tez Johnson made a 16-yard catch to get the ball to midfield as the first quarter came to an end.
Early in the second quarter, Kyle Trask converted a couple of third downs, one with a 13-yard pass to Trey Palmer and the other with an 11-yard pass to Tez Johnson. But after Kameron Johnson couldn’t hang on to a would-be touchdown on another third down, the Bucs had to settle for a 35-yard Chase McLaughlin field goal to get within 7-3.
K.J. Hamler caught a 30-yard catch to open the Bills’ next drive, then a Shilo Sanders personal foul and subsequent ejection moved the ball even deeper into Bucs territory. One play later, Buechele found Tyrell Shavers for an 11-yard touchdown to extend Buffalo’s lead to 14-3.
Josh Williams once again looked to give Tampa Bay a spark on the ensuing kick, returning this one 42 yards to the 49-yard line. After Tez Johnson got six yards on a third-down catch and nine yards on the next play, Williams ran for five, 11 and nine yards on the next three plays, respectively, to get the ball down to the 6-yard line.

Bucs RB Josh Williams – Photo by: USA Today
After getting down to the 1-yard line inside the two-minute warning, the Bucs found the end zone on a 1-yard touchdown pass from Trask to Tez Johnson. With the PAT, the home team was within 14-10 with 58 seconds left in the first half.
But Buffalo had an answer, even with less than a minute to go before halftime. A 24-yard Kristian Wilkerson catch, a 12-yard Buechele scramble and a 13-yard catch by Deon Cane got the ball deep into Buccaneer territory before Tyler Bass connected on a 37-yard field goal at the buzzer to make it a 17-10 lead for the visitors at the break.
The Bills offense got moving once again out of the break, killing half the quarter with an 11-play, 63-yard drive that ended in another 37-yard field goal by Bass. The Bucs had a quick response, though, with Kameron Johnson returning the ensuing kickoff 57 yards into Buffalo territory to set up an eventual 50-yard field goal by Chase McLaughlin to get the game back within one score at 20-13.
The Buccaneers have tied or re-set the club's post-2017 preseason kick return mark three times in tonight's contest, as Kameron Johnson returns Buffalo's kickoff 57 yards.
— Buccaneers Communications (@BuccaneersComms) August 24, 2025
Buffalo came right back with another field goal drive, getting back to a 10-point advantage at 23-13 with 1:30 left in the third quarter.
That’s where the score would remain deep into the fourth quarter, and it wasn’t until inside the five-minute mark that the Bills had another chance to add to their lead. However, Bass hooked his 26-yard attempt wide right, keeping it a 10-point game with 4:24 to go.
The Bucs tried to put up something of a fight from there, with a 30-yard catch by Kameron Johnson from Connor Bazelak getting things going. A few completions later, the offense was at the goal line as the two-minute warning hit. After the timeout, Bazelak threw a 1-yard touchdown pass to Garrett Greene. The two-point try was stuffed, though, so Tampa Bay only got within four with 1:47 to go.
The Bills were able to ice the game from there, finishing off a 23-19 win over the Bucs to close out the preseason.
That's a wrap on the preseason. pic.twitter.com/FgP6dp0FHe
— Tampa Bay Buccaneers (@Buccaneers) August 24, 2025
Kyle Trask bounced back from a poor showing last Saturday, completing 13 of his 17 passes for 93 yards and a touchdown in one half of play. Rookie wide receiver Tez Johnson was his top target, and it was a breakout game for him as he caught all eight of his targets for 58 yards and a touchdown – followed up by a flipping phenomenal celebration.

Bucs WR Tez Johnson – Photo by: USA Today
Rookie running back Josh Williams was the other star of the night, running the ball well but also showing out with his kick return opportunities, totaling 108 yards over three returns with a long of 42 yards.
Defensively, Tampa Bay struggled to get in the way of Shane Buechele, who completed 25 of his 30 passes (83.3%) for 278 yards and a touchdown. The Bills out-possessed the Bucs 35:38 to 24:22 and finished with a 25 to 18 advantage in first downs. Plus, it was the first time this preseason that the Buccaneer defense failed to record a takeaway.
On the plus side, rookie defensive tackle Elijah Roberts registered his first sack to finish off what was a promising preseason.
The Bucs will now spend the next few days pondering their cuts as they trim the roster down to 53 players ahead of the regular season. From there, the team will turn its attention to the Sept. 7 opener in Atlanta against the Falcons. Kickoff for that game is scheduled for 1:00 p.m.

Bailey Adams is in his fourth year with Pewter Report. Born and raised in Tampa, he has closely followed the Bucs all his life and has covered them in some capacity since 2016. In addition to his responsibilities as a beat writer, he also contributes to the site as an editor. He graduated from the University of Central Florida in 2019 and currently co-hosts The Pegasus Podcast, a podcast dedicated to covering UCF Football.