The good, bad, and ugly from the Bucs' preseason loss to the Bills
The Tampa Bay Buccaneers couldn't complete the preseason sweep, falling to the Buffalo Bills Saturday night 23-19.
In a game where the starters and even some valuable backups enjoyed a night off, there was plenty of opportunity for players vying for roles and spots on the team for the upcoming season. Some players helped their cause for roster spots and opportunities on the practice squad, while others have likely played their last down in Tampa Bay. Here's the good, the bad, and the ugly from the Bucs' loss to the Bills:
The Good
RB Josh Williams
Williams likely earned himself a roster spot Saturday night. He was the only running back able to get anything going on the ground and has shown as a receiver and a pass protector. In addition to the 28 yards he gained on the ground and three yards on his lone reception, he had three kick returns for a total of 108 yards.
WR Tez Johnson
Aug 23, 2025; Tampa, Florida, USA; Tampa Bay Buccaneers wide receiver Tez Johnson (83) takes the field for a game against the Buffalo Bills at Raymond James Stadium. Mandatory Credit: Nathan Ray Seebeck-Imagn Images / Nathan Ray Seebeck-Imagn Images
Johnson has been electric with the ball in his hands, and in his first extended game reps of the preseason, he showed how elusive he can be. The rookie wide receiver caught all eight of his targets on the night for 81 yards, and recorded his first career touchdown and celebrated with a sky-high backflip in the endzone. Johnson secured himself a spot on the roster with his performance.
WR Ryan Miller
If Miller didn't already have a spot locked up on the 53-man roster, he certainly helped his cause against the Bills. The second-year wideout just does all the little things right and has the trust of every quarterback on the roster. He secured two catches for 18 yards, with a 14-yard catch and run on the first drive.
DL Elijah Roberts
Roberts has had a solid training camp, primarily focusing on improving his run defense as he becomes accustomed to playing back inside. The Bucs knew what they had in him as a pass rusher, and that shone through last night when he recorded his first sack. However, he also looked improved in run defense as well. Roberts will fit in nicely to the rotation and has locked up his spot on the roster.
S/NCB Rashad Wisdom
No one helped their cause more than Wisdom on Saturday night. Down several cornerbacks to injury, the natural safety has had to learn the nickel corner position on the fly and has performed well the last two weeks. He's done a good job of sorting through all the trash the position finds itself in and had five tackles, including one for a loss. The Bucs will now have to weigh keeping him on the roster as a fifth safety with roster flexibility.
The Bad
WR Kam Johnson
It wasn't all bad for Johnson as he had a nice 22-yard punt return late in the game, and a 30-yard catch and run. However, two drops on his first drive in the game, including one that could have gone for a touchdown, likely have him hoping for a spot on the practice squad.
WR Trey Palmer
On the bubble after missing most of training camp, Palmer was healthy and practicing this week before leading up to the game. Plamer received the third most snaps at wide receiver in the game but came away with just one catch for 10 yards. He didn't get any opportunities at punt return, and after two seasons, hoping for the potential to break through it may be too late for the former sixth-round pick.
C Elijah Klein
It was a rough night for Klein as he continued to get acclimated to the center position. Bills rookie Deone Walker tormented him at times and got by Klein for a sack. Klein struggled to get consistent push in the run game, and pass protection was a struggle as well. He's set to make the roster as the backup interior lineman, but there's still work to be done at center.
CB Bryce Hall
After coming back from a devastating season-ending ankle injury, Hall was having a great camp this summer with the Bucs. Looking to land one of the final few spots onthe roster Hall was out there as astrting corner in the final preseason game. The results were up and down as he had some good coverage but also made a few mistakes. He was called for a holding call giving the Bills. first down on a scoring drive that he was vicitmized on the touchdown pass. I still think there's a spot for Hall on this team but it might come on the practice squad sfter Saturday's game.
The Ugly
S Shiloh Sanders
It wasn't a great night for Buccaneers safety Shilo Sanders, and that's before he was ejected from the game for taking a swing at Bills tight end Zach Davidson. However, it was ugly for him before he was ejected. Sanders was called for a defensive pass interference call that gave the Bills an automatic first down on their way to an early scoring drive, and on another play, it looked like he was supposed to pick up K.J. Hamler as Hall took the underneath route, and the miscommunication led to a 30-yard catch and run. The Buccaneers waived Sanders on Sunday.
RT Tyler McLellan
It was ugly from the start for McLellan. He was often beaten and was abused during the first drive of the game. The 6'8", 355-pound tackle was being pushed around, and while he had a few good reps, it was largely a one-sided battle with him on the losing end. With the Bucs desperate for tackle help, they gave him a huge opportunity, and he didn't make the most of his chance.
Offensive Line Depth
It was not a good showing for the reserve offensive lineman. The unit spent a lot of time on their heels in the pass game, and QB Kyle Trask had little time to throw in the pocket. The concerns that showed up in the run game last week against the Steelers were present on Saturday night, and there is little reason to have confidence in any of the Bucs' reserve linemen should they need to see extended time in the regular season. I fully expect the Bucs to add to this group in some way or form through either waivers or free agency once rosters are cut down.