The Arizona Cardinals won the toss, electing to defer. It meant the Bucs started with the ball for the ninth-straight game this season. But the first series didn't get off to a fast start for Tampa Bay. Winston was sacked before Cardinals cornerback Byron Murphy picked him off on third down.
Arizona took over at the Bucs' 37-yard line and would get as far as the 19-yard line before facing a fourth-and-14, thanks in part to a big tackle for loss by outside linebacker Shaq Barrett. It meant Arizona settled for just a field goal. Arizona State product Zane Gonzales was good from 37 yards as the Cardinals took an early 3-0 lead.
The next drive would prove fruitful for the Bucs. Mixing in a good combination of runs and passes, it culminated in a seven-yard score as running back Ronald Jones barreled up the middle and into the end zone. It gave Tampa Bay a 7-3 lead with 3:42 left in the first quarter.
The Cardinals got past midfield before they were stopped by the Bucs' defense and back-to-back false start penalties. They settled again for a field goal, this time from 54 yards to cut Tampa Bay's lead to 7-6 early in the second quarter.
The Bucs would answer with a field goal of their own on the next drive. Kicker Matt Gay hit a 39-yarder to put Tampa Bay up 10-6 with 8:53 left in the half. What looked like a stop by the Bucs defense turned into some trickery by the Cardinals. They faked the punt and punter Andy Lee completed a pass to Pharoh Cooper for the first down. The Bucs then got called for defensive pass interference and two plays later, were in the end zone by the hands of Kirk for the third time in the game. It gave Arizona a 27-23 lead with 7:22 left in the fourth quarter.
The next Arizona drive was put to bed by another sack from outside linebacker Shaq Barrett, who dropped Kyler Murray for a loss of five. Barrett came into the game leading the league in sacks and the second-quarter takedown gave him 11.5 on the season. The Cardinals were forced to punt from deep in their own territory as Tampa Bay took over at their own 37-yard line.
The Bucs' offense came up empty on their last drive but the defense returned the favor, forcing another Arizona punt.
With over three minutes until halftime, the Bucs couldn't get anything going once again and surrendered the ball back to the Cardinals. Murray and Co. drove down the field and the drive resulted in a 33-yard touchdown pass to wide receiver Christian Kirk. Gonzalez was good for the point after and Arizona took back the lead, 13-10.
The Bucs had just over a minute to work with and two of their timeouts before halftime. A 17-yard pass to Mike Evans got the drive going. It wouldn't stop from there. Tight end O.J. Howard scored his first touchdown of the year on a 10-yard pass from quarterback Jameis Winston. It gave the Bucs a 17-13 lead just before halftime.
Arizona came out hot and drove down the field, getting to the Bucs' 23-yard line before they stalled. Fourth-and-one, they decided to go for it and what looked like a sure-fire touchdown fell through the hands of tight end Maxx Williams as he lost the ball in the sun, instead. It preserved the Bucs' 17-13 lead as Tampa Bay took over on downs.
The next drive would span 49 yards in nine plays for the Buccaneers but they'd be forced to settle for the field goal from Gay. He booted a 45-yarder through the uprights to extend the Bucs' lead to 20-13 with 8:37 left in the third quarter.
Arizona answered right back two plays later when Kyler Murray connected with Christian Kirk for a 69-yard touchdown. It tied the game at 20 apiece in the third quarter.
The two teams traded punts on the ensuing series. Tampa Bay started their next drive at their own 11-yard line. An untimely turnover as a pass from Winston intended for Godwin was tipped up in the air. The Cardinals came down with it and took over.
However, just two plays later linebacker Lavonte David would serve some karma of his own as he stripped Johnson of the ball and the Bucs recovered. It took a challenge to get the call on the field of the runner down by contact reversed but the rectified call gave the Bucs new life. They'd settle for a field goal, which Gay initially missed but an offsides penalty moved Tampa Bay up and gave Gay another chance.
He was good this time, breaking the tie in favor of the Bucs with a 41-yard field goal. Tampa Bay took a 23-20 lead with 9:44 left in the game.
Arizona did the Bucs one better on the next drive as Murray connected with Kirk for the third time in the end zone. It put the Cardinals back on top, 27-23, in the middle of the fourth quarter.
What started as a promising drive for the Bucs ended as Ronald Jones fumbled the ball after a catch and run. It was recovered by safety Budda Baker and Arizona took back control. The Cardinals got inside the red zone when rookie cornerback Jamel Dean picked off Murray on a pass from the 15-yard line.
One big catch for 49 yards by Chris Godwin later, and the Bucs found themselves inside the red zone themselves. A pass intended for Mike Evans fell incomplete in the end zone went to a booth review where the refs ended up calling pass interference. It gave the Bucs a fresh set of downs right at the goal line. Tampa Bay pulled some trickery, bringing defensive tackle Vita Vea in on offense. It took three tries but running back Peyton Barber got the edge thanks to blocks by said Vea and tight end Tanner Hudson to punch it in the end zone and give the Bucs a 30-27 lead with 1:43 to go.
Time ran out on Arizona on their final drive and the game ended with a Bucs 30-27 victory.