It wasn't easy, but the San Francisco 49ers figured out a way to leave Levi's Stadium with a win over the Arizona Cardinals on Sunday.
They took down the Cardinals 36-30 in a back-and-forth affair that looked multiple times like it would slip through the 49ers grasp. Alas, they found a way to cling to their third victory of the year and move to 3-0.
We took notes throughout the game. Here's our notebook with a look at each quarter:
First quarter
- Nice work by rookie defensive tackle Gracen Halton to come up with a tipped pass at the line of scrimmage on a second-and-3. The fourth-round pick continues shining in his expanded role.
- Sebastian Valdez up from the practice squad with a nice run stop on a second-and-4. Fred Warner was also in there, but it looked like Valdez was first at the point of attack.
- Good pressure from Khalid Kareem off the edge. He hit Jacoby Brissett as he was throwing on a first-and-10 to help force an incompletion.
- Not really sure why Arizona would throw at all on this first drive. RB Jeremiyah Love is at 27 yards on five carries. It's too easy on the ground.
- Rookie LB Jaden Dugger knifed through on an outside run to force a holding penalty. The 49ers will love to see that.
- Not great that the 49ers started their first offensive series with a false start. They've been very good pre-snap this year.
- WOW! What a play by Mike Evans and Deebo Samuel to put the 49ers ahead 7-0 in the first quarter.
MIKE EVANS FLIPS IT TO DEEBO FOR THE TD
— NFL (@NFL) September 27, 2026
@AZvsSF on FOX/FOX One
Stream on @NFLPlus pic.twitter.com/GOuLwblygR
- Sick throw and near completion for Purdy. He rolled right and made a jump throw down field to Luke Farrell as he was going out of bounds. It looked like Farrell might've gotten a knee down, but it would've been hard to overturn after it was ruled incomplete on the field. That play is still unreal from the 49ers QB.
- Jordan Watkins sighting! He nearly took a slant to the house in his first game of the year. He went for 25 on third-and-11 to keep the 49ers' second drive rolling.
- End of first quarter score: 49ers 7, Cardinals 0
Second quarter
- Purdy is so dialed to start this season. My word. His second touchdown pass of the game was a perfectly thrown over-the-shoulder throw to Mike Evans that snuck over the defensive back and directly into Evans's hands. Purdy couldn't have handed him the ball better than that.
A connection we love to see 🙌
— San Francisco 49ers (@49ers) September 27, 2026
📺: FOX pic.twitter.com/6CqyBmFama
- The 49ers pass rush has been really good thanks to some good designs from Morris.
- Tough couple of plays for Purdy after a Cardinals punt. On second-and-5 he rolled out left and had to throw the ball away. He rolled out left again on third down and misfired over the middle to McCaffrey. That's the 49ers' first failed third-down conversion of the day. They're now three-for-four.
- Ouch. Deommodore Lenoir got walloped by Fred Warner and was slow to get up. He's headed to the medical tent.
- Man, the 49ers are laying hats this year. They're flying around and allowing very few yards after catch. Good tackle from Dre Greenlaw on a third-and-goal to bring up a Cardinals field goal after a 14-play, 54-yard drive.
- Oh that's scary. Not only did Brock Purdy nearly get intercepted on maybe his worst throw since the season opener, but Mike Evans pulled up with an apparent injury. Purdy threw a floating ball into traffic where three white jerseys were around Evans. That's just not a play the 49ers can afford to have Purdy making and they're lucky it wasn't picked off. As for Evans, he looked to be favoring his right side and had trouble breathing coming off the field. That's a scary looking injury that we'll keep a close eye on.
- Good play on a screen by Halton. He recognized it quickly and got back into the play. Really well done by the rookie DT who's having a nice game. Dre Greenlaw also did well to turn the screen back inside where Halton could have a chance to make a play.
- Watkins again! This time he's good for 34 yards making it two catches for 59 yards in his first game of the year. He has good burst after the catch.
- That Watkins grab was enough to get the 49ers into range for a 57-yard field goal from Eddy Pineiro. It's crazy how much of a difference maker Pineiro has been.
- End of second quarter score: 49ers 17, Cardinals 6
Third quarter
- Two weeks in a row the 49ers have hit George Kittle to open the second half.
- Kittle again for 18 yards. He's not quite what he used to be after the catch, but he's still very clearly one of the best pass catching TEs in the sport.
- Sick play by Christian McCaffrey to absorb a big hit and continue running for 12 yards and a first down. Like Kittle, McCaffrey isn't what he once was after the catch, but he's still excellent.
- A Kaelon Black sighting! His second carry of the day goes for six yards and gets the 49ers to the 1.
- McCaffrey got the next carry after Black got them to the 1. That's going to be a lot of Black's role this year is helping the 49ers get inside the 5. It'll be awhile before the 49ers trust someone besides McCaffrey to get them in the end zone.
- Brutal. Osa Odighizuwa got home and couldn't get Brissett on the ground. It led to a 13-yard completion. That's one Odighizuwa needs to have.
- Trent Williams to the locker room on a cart. Neat. Just what the 49ers need.
- Man. The 49ers defense is really struggling. 14-play touchdown drive by the Cardinals and San Francisco was never really close to getting off the field. They did get to a fourth down, but Arizona easily converted it. It's a 10-point game now.
- Vederian Lowe is in at left tackle. The 49ers immediately ran away from his side.
- A holding penalty derailed what needed to be a long drive for San Francisco. Connor Colby was flagged for a hold on a third-and-8 scramble for a first down by Purdy. Yikes.
- There's a hit on Brissett. Kevin Givens got in and walloped the Cardinals QB as he was throwing to force a second-and-10 incompletion. Nice work from the veteran DT.
- Incredible coverage by Deommodore Lenoir on third-and-10 to force a punt. He ran the route for WR Marvin Harrison Jr. Much-needed stop for the 49ers defense.
- A muffed punt is the exact type of play that happens if the 49ers are going to lose this game. Brutal stuff. Arizona has it at the 49ers 26 after three straight incompletions led to a punt. It's gut check time for a banged up 49ers defense.
- End of third quarter score: 49ers 23, Cardinals 13
Fourth quarter
- Pass interference in the end zone gives the Cardinals a first-and-goal at the 1 AND Dre Greenlaw is hurt. The wheels are coming off in Santa Clara.
- Easy touchdown for the Cardinals. A predictable outcome on a short field. The 49ers can't stop Arizona right now. They need to score on their next drive or this one might be over.
- Kittle catch for 11. McCaffrey run for 11. McCaffrey run for 9. Black run for 9. Vintage Samuel 11-yard run. My goodness.
- Nice pitch and catch from Purdy to Kittle for a 10-yard touchdown. Niners got a gift with a roughing the passer penalty after an incompletion on a third down. It's 29-20 after Pineiro missed another extra point. Those missed PATs, he has two today, could become a problem if he starts overthinking kicks or making too many adjustments.
- The 49ers finally get Brissett on the ground and it's Keion White who got home and wouldn't let the big QB out of his grasp. Brissett has stepped out of a couple sacks but this time White did well to not let him go. That was White's second sack of the year.
- Sack didn't matter. Marvin Harrison Jr. gets 19 on third-and-11. The 49ers blitz got fully stymied.
- This is so easy for Arizona's offense. Wake-up call day for the 49ers defense.
- Good tackle by Marques Sigle to keep Trey McBride out of the end zone. Really strong tackle.
- The tackle by Sigle didn't matter. The Cardinals got in the end zone one play later on a Brissett QB sneak. It's 29-27. Dreadful stuff from the 49ers defense. The third 14-play scoring drive of the game for the Cardinals.
- This hasn't been Purdy's best game. He's been a little indecisive and off target a bunch.
- Sick run by McCaffrey to get inside the two-minute warning. It looked like he got stopped up for a medium gain. Instead he churned ahead for 12 yards and a first down in a play that gets the 49ers closer to putting the game away.
CMC DRAGGING defenders past the sticks 💪@AZvsSF on FOX/FOX One
— NFL (@NFL) September 27, 2026
Stream on @NFLPlus pic.twitter.com/XaCOVDZ0Eh
- Wow. Brutal. Purdy's 45-yard touchdown run is negated by a holding penalty on Kittle way down the field. That's tough because Kittle didn't need to hold. Purdy getting a first down was plenty.
- Didn't matter. Touchdown Kittle two plays later on a gutsy play call from head coach Kyle Shanahan. Second-and-10 with 1:36 to go and the Cardinals out of timeouts Shanahan called a play action rollout for Purdy who found Kittle wide open for a 20-yard touchdown. It was his fourth TD pass of the game and Kittle's second TD catch. It also put this one one ice with a 36-27 lead and probably not enough time for Arizona to score twice.
- It's over. The 49ers hang on after the Cardinals settled for a field goal and tried an onside kick. Deebo Samuel grabbed it to seal the 36-30 win. Wow.
- Final score: 49ers 36, Cardinals 30
More 49ers: 49ers lose another pair
of defenders to injury vs. Cardinals
This article originally appeared on Niners Wire: Notes and observations from wild 49ers Week 3 win over Cardinals













