The Panthers won the toss and elected to defer, giving the Bucs’ offense the first shot. Tampa Bay was able to drive down the field behind a few good runs by both running back Peyton Barber and quarterback Jameis Winston, who broke loose for an 18-yard run to get the Bucs inside the red zone. The drive was capped off by a three-yard touchdown pass to wide receiver Adam Humphries, giving Winston 80 touchdowns in his career. That number is tied with former Bucs’ quarterback Josh Freeman for the most in franchise history. It helped the Bucs jump out to an early 7-0 lead on their first drive.
Carolina’s first possession of the game ended prematurely. On second down, quarterback Cam Newton was sacked for a loss of eight by Bucs’ linebacker Kevin Minter. Then on third down, linebacker Lavonte David got in front of the intended pass from Newton, tipping the ball in the air where safety Andrew Adams grabbed it and ran it back to the Carolina 20-yard line. The Bucs were able to capitalize with a 35-yard field goal to extend their lead to 10-0 halfway through the first quarter.
The Panthers’ next drive was helped by a pass interference call on first down. Running back Christian McCaffrey was then able to take off for a big 53-yard run, placing the Panthers at the Bucs’ eight-yard line. The next play saw McCaffrey finish the job, getting inside the end zone to cut the Bucs’ lead to 10-7 with 4:14 to go in the first quarter.
The next Bucs’ drive came up empty. After a good first down run for 10 yards by Peyton Barber, the next set of downs saw a third-down sack of Winston that ultimately forced Tampa Bay to punt.
Right before the end of the first quarter, as Newton dropped back to throw on second down, David came screaming off the edge completely unblocked to drop Newton for a loss of seven. The Panthers would ultimately punt as the Bucs got the ball back at the start of the second quarter.
The Bucs got all the way to the goal line on their next drive before running back Peyton Barber ended up fumbling, though it looked as though he broke the plane. After review, the referees confirmed the call and the Panthers’ offense took over at the 25-yard line after recovering it in the end zone. A couple penalties would back them up and the Bucs were able to force the punt and more importantly, prevent Carolina from capitalizing on the turnover.
The Bucs would stall on their next drive behind back-to-back sacks that would force the Tampa Bay punt. The Bucs got a break on the return that initially went into Bucs’ territory but was called back on an illegal block in the back by Carolina. As the Panthers threatened, it was safety Javien Elliott that made a great read underneath a slant intended for the Panthers’ D.J. Moore. He picked the ball off and ran it all the way back to the Carolina 32, giving the Bucs another shot at scoring before halftime.
On third-and-11, Winston scrambled to his right and unloaded a shot to the back corner of the end zone where wide receiver Chris Godwin was waiting. The Bucs went into halftime leading 17-7.
The Panthers got the ball to start the second half and looked to be in the end zone before they were called for a holding penalty inside the red zone. The Buccaneers were able to hold them behind a sack from defensive end Vinny Curry and a third-down hurry from defensive end Jason Pierre-Paul to force Carolina to settle for a field goal. After the 37-yard kick, the Bucs led 17-10 with just over 10 minutes left in the third quarter.
The Bucs stuttered to midfield on their next drive when Winston decided to air it out for wide receiver Bobo Wilson. He wasn’t able to make the grab but did draw a defensive pass interference call in the end zone, giving the Bucs first-and-goal at the one-yard line. The next play, running back Peyton Barber punched it in to extend the Bucs lead to 24-10 halfway through the third.
Carolina’s next drive proved more fruitful. After converting their first third down of the game, Newton went on a roll, completing pass after pass for a first down. Though they started at their own eight-yard line, the Panthers drove 92 yards on the drive that resulted in a 10-yard touchdown catch by wide receiver Devin Funchess, cutting the Bucs’ lead to one score, 24-17, at 2:24 in the third quarter.
After getting backed up to third-and-17 after a sack, the Bucs were able to keep their next drive alive as Winston hit tight end Cameron Brate over the middle for an 18-yard gain. After a bizarre series of penalties, the Buccaneers were forced to punt. Bryan Anger pinned the Panthers inside their own 20 at the 13-yard line.
Again, the Panthers were threatening inside Bucs’ territory when McCoy brought the pressure on Newton, forcing him to get rid of the ball quickly. The pass was then picked off by safety Andrew Adams, his second of the day, giving the ball back to the Bucs at their 29-yard line. They wouldn’t be able to capitalize on the turnover, leaving the score 24-17.
The next Panthers series ended exactly like the first: with an Andrew Adams interception. The safety nabbed his third of the game on a pass intended for the Panthers’ Curtis Samuel on second down. He returned it to the Tampa Bay 19-yard line where the Bucs would take over again.
The Bucs again came up empty but were able to pin the Panthers back inside their own 25-yard line. The Bucs defense came up big on a third-down sack of Newton by Pierre-Paul to put the Panthers in a fourth-and-nine situation at the Bucs' 48-yard line. They wouldn't convert and the Bucs got the ball back with 2:21 left while Carolina had just one timeout.
Tampa Bay ran on three straight plays and was able to run the clock down to 1:13 before having to punt the ball away. After just a 23-yard punt, the Panthers took over at their own 26-line with 75 seconds remaining in the game and down one score with no timeouts. The Bucs' defense was able to hold with the Panthers stalling as time ran out sealing the Bucs victory, 24-17.