The Philadelphia Eagles’ quest to repeat as Super Bowl champions is over.
The Birds were eliminated from the playoffs in a Wild Card loss at home to the San Francisco 49ers. Final score: 23 to 19.
19 points.
The most expensive offense in the NFL by far managed to muster just 19 measly points against the worst defense in the playoffs.
It’s not exactly like Vic Fangio’s defense played their A-game in this one but they more than carried their weight for most of the season. They at least produced two takeaways in the form of Quinyon Mitchell interceptions, allowing the Eagles to be +2 in turnover differential.
And yet a terrible, uninspiring, moribund, bland offensive performance doomed the Eagles in.
This performance wasn’t merely offensive coordinator Kevin Patullo’s fault. There were a lot of penalties and lack of execution (example: a Saquon Barkley third down drop). But it’s pretty difficult to argue that Patullo is part of the solution moving forward.
If you’re blaming Patullo, which is more than fair, you also have to blame Nick Sirianni. This was the head coach’s right-hand man since coming to Philly and clearly his pick for OC this year.
Sirianni also notably opted for a field goal on 4th-and-3 from the 49ers’ 15-yard line in the fourth quarter of this game instead of trying to go for a touchdown. They would be the last points the Eagles scored this season.
If there’s a silver lining to this loss, it’s that we don’t have to watch this entirely too frustrating 2025 Eagles offense again.
But the Eagles should’ve won this game. They were 5.5-point home favorites. They rested their starters in Week 18 to manufacture a bye week.
No good excuses for this season-ending loss.
And now an offseason with many questions to be answered.
Read on for a recap and stay tuned for BGN’s postgame coverage.
FIRST QUARTER
- The Eagles won the coin toss and elected to defer. The 49ers took over at their own 24-yard line. Brock Purdy’s first pass attempt went for a 58-yard Demarcus Robinson catch-and-run with Quinyon Mitchell trailing that quieted the Philly crowd. The 49ers moved to 1st-and-goal at the 5-yard line. Two plays later, Purdy hit Robinson again with Mitchell trailing in the end zone for a touchdown. Rough series for Q, who was just named first-team All-Pro. Five plays, 74 yards, touchdown. First thought: Uh, what the hell, defense? Second thought: Not the first time we’ve seen the opposition have success on a first drive before Vic Fangio’s group tightened up after that. EAGLES 0, 49ers 7.
- The Eagles took over at their own 37-yard line. The Eagles went with Saquon Barkley run for two yards and then a second for 29 yards into plus territory. Fred Johnson got banged up to force Matt Pryor into the game but just for one snap. The Eagles moved into the red zone with a Jalen Hurts completion to A.J. Brown. Facing 3rd-and-3, a Barkley carry picked up a first down at the 7-yard line. Facing 3rd-and-goal at the 1-yard line, the Eagles went with a handoff to Dallas Goedert (!) for the touchdown. Awesome opening drive for the offense to answer the 49ers’ score by going 63 yards in 10 plays for the score. But then Jake Elliott missed the extra point in windy conditions. EAGLES 6, 49ers 7.
- The 49eres took over at their own 26-yard line. Mitchell bounced back from his very bad first drive with a pass breakup. Facing 3rd-and-6, Purdy’s pass was completed short of the sticks. Three-and-out.
- The Eagles took over at their own 32-yard line after a mere 35-yard punt. Facing 3rd-and-7 after two Barkley runs, Hurts hit Darius Cooper (!) over the middle for a first down. Facing 3rd-and-2, a Barkley run resulted in no gain. Facing 4th-and-2, Nick Sirianni kept the offense on the field and Hurts’ pass for DeVonta Smith was broken up with the 49ers’ cornerback jumping the route. Nearly picked off. Liked the decision to go for it. Would’ve preferred trying to sneak twice starting on 3rd-and-2. Also looked like Hurts made the wrong read to hand off to Barkley instead of keeping on third down.
- The 49ers took over at their own 48-yard line. Facing 3rd-and-9 after Cooper DeJean broke up a pass, Purdy took off running but was forced out of bounds by a hustling Moro Ojomo for just two yards. Second straight three-and-out for the 49ers offense.
- The Eagles took at their own 6-yard line after Britain Covey let a punt take a 49ers bounce to pin the Eagles back. Hurts completed a pass to Brown for seven yards to end the first quarter.
SECOND QUARTER
- Facing 3rd-and-10 after picking up two first downs, Jahan Dotson false started. Facing 3rd-and-15, Hurts hit DeVonta just short of the marker. Facing 4th-and-1 from their own 44-yard line, Sirianni kept the offense and went Tush Push for the first down! Love the aggression there. The Eagles moved into 49ers territory with a fake screen right and Hurts looking back left to get the ball to Barkley for 20 yards. Really nice design! The Eagles then started to feed Tank Bigsby (the team clearly saw my tweet) and he picked up 20 yards on three straight carries. Facing 3rd-and-5 at the 12-yard line, the Eagles went with a Barkley run to set up fourth down. Facing 4th-and-2, Hurts hit Dallas Goedert for a touchdown! But the score was called back for Cam Jurgens illegally being downfield … but then the refs announced no penalty. Jurgens was actively engaged with the defender and thus not illegally downfield. Legitimately excellent drive. Elliott barely made the extra point. EAGLES 13, 49ERS 7.
- The 49ers took over at their own 23-yard line. George Kittle got carted off the field after a short reception. Purdy hit Jauan Jennings over the middle for another explosive play, this one for 45 yards with Cooper DeJean trailing (first Q and now Coop?!). Facing 3rd-and-1, Jordan Davis (who previously had a stop on second down) tackled Christian McCaffrey for a loss. Facing 4th-and-2, Kyle Shanahan kept the offense on the field … but took the 49ers’ second timeout. Facing 4th-and-2 for real, the 49ers quickly put their field goal unit on the team and Eddy Piniero made a 36-yard field goal in the wind. The Eagles will gladly live with the 49ers taking three in that spot. EAGLES 13, 49ERS 10.
- The Eagles took over at their own 35-yard line with 2:50 on the clock and three timeouts to work with. Hurts took a deep shot to A.J. Brown, who was open, but missed him. Facing 3rd-and-4, Fred Johnson false started. Facing 3rd-and-9, Hurts had DeVonta Smith running wide open on a crossing route for a first down but Hurts went downfield to Brown again and the receiver couldn’t make the contested catch. Missed opportunities. Punt.
- The 49ers took over at their own 23-yard line with 1:51 on the clock and one timeout to work with. Facing 3rd-and-11 after Jalen Carter sacked Purdy, the 49ers had a free play with the Eagles jumping early but the 49ers declined it with a Purdy first down completion to Robinson against Adoree’ Jackson’s soft coverage anyway. Not ready to run a play, the 49ers had to burn their final timeout with the clock already stopped at 1:02. Facing 3rd-and-10, Purdy hit tight end Jake Tonges for a first down. Facing 3rd-and-5 with 0:08 on the clock after the 49ers oddly didn’t spike the ball to stop the clock earlier, the 49ers intentionally ran Purdy to try to get him out of bounds for a long field goal attempt. The Eagles almost failed to get him out … but after review, it was determined Quinyon Mitchell forced a Purdy fumble that ended the first half and prevented a 49ers field goal attempt. Phew! Got lucky the 49ers really botched that there.
THIRD QUARTER
- The Eagles took over at their own 30-yard line. Facing 3rd-and-3 after two Barkley runs, Hurts hit Barkley in the flat for a would-be first down but the running back didn’t look the ball in and started to glance downfield before securing the catch. Killer mistake. Three-and-out.
- Braden Mann’s punt went 58 yards to be fair caught at the 5-yard line. The 49ers picked up two first downs to move to their own 33-yard line. Facing 3rd-and-1, the 49ers went QB sneak for the first down. Purdy was then intercepted by Q, who jumped the route! A much-needed momentum boost.
- The Eagles took over at their own 48-yard line. The Eagles picked up a first down on a designed run for Jalen Hurts … that was called back due to holding on Cam Jurgens. Looked like a weak flag. For some dumb reason, the Eagles decided to run the ball on 2nd-and-18 and ran for a loss. Facing 3rd-and-19, Hurts checked down to Goedert for five yards. 3 plays, -9 yards after the takeaway by the defense. Another big missed opportunity.
- The 49ers took over at their own 20-yard line after Mann’s punt bounced into the end zone for a touchback. Facing 3rd-and-9, Vic Fangio brought the blitz and Purdy got hit as he threw while also seemingly not being on the same page as CMC for an incompletion. Big stop by Fangio’s squad. Vintage 2025 Eagles: weak offense, strong defense.
- The Eagles took over at the plus 46-yard line with after a mere 25-yard punt by the 49ers. The Eagles picked up a first down (what a miracle). Facing 3rd-and-3, Barkley took a draw into open space for a very easy first down run. Facing 3rd-and-13 after Barkley ran for a loss (MAYBE STOP RUNNING ON SECOND-AND-LONG?), Hurts took a designed run for four yards. Could’ve been good to do that on second down instead! Elliott came in for the 41-yard field goal attempt … and made it. 10 plays to gain just 23 yards, lol. EAGLES 16, 49ERS 10.
- The 49ers took over at their own 33-yard line and only needed one play to move into plus territory. Facing 3rd-and-1 at the plus 31-yard line, the 49ers went QB sneak to get a first down and end the third quarter.
FOURTH QUARTER
- The 49ers went with some trickeration to begin the fourth quarter with Jennings throwing a touchdown pass to a wide open CMC to give the 49ers the lead. Good call by Shanahan. EAGLES 16, 49ers 17.
- The Eagles took over at their own 35-yard line. Hurts to Barkley resulted in a first down by a Cooper holding penalty (looked tacky to me) set the offense back instead. Then Goedert dropped a pass. Facing 2nd-and-20, the Eagles went with a RUN for seven yards. Facing 3rd-and-13, Hurts bailed a clean pocket, rolled right, and threw the ball away. Awful possession! 3 plays, -3 yards.
- The 49ers took over at their own 31-yard line. The 49ers picked up one first down but then Purdy threw another interception to Q!
- The Eagles took over at their own 38-yard line. Hurts ran for a first down and the 49ers got called for unnecessary roughness to add 15 more yards (BS penalty to me since Hurts slid into the defender but, hey, they often call that, so, smart play by Hurts). The Eagles moved just outside of the red zone by pounding the rock with Barkley. Facing 3rd-and-9 after the refs didn’t call what could’ve been pass interference on the 49ers, Hurts hit Will Shipley for six yards. Sirianni should’ve kept the offense on the field to go for it but he settled for a 33-yard field goal make. Not sure you can merely trust this offense to get in scoring position again. EAGLES 19, 49ERS 17.
- The 49ers took over at their own 34-yard line with 7:55 left in the game. The 49ers moved into field goal range. The 49ers moved into the red zone with a Purdy sack wiped out by a Reed Blankenship holding penalty. The 49ers moved into first-and-goal at the 10-yard line. Facing 3rd-and-goal at the 4-yard line after a DeJean PBU, Purdy JUST stepped up to avoid Nolan Smith (who was clearly held by Trent Williams) and then hit CMC for the touchdown. 10-play, 66-yard TD drive by the 49ers. SF missed the extra point. EAGLES 19, 49ERS 23.
- The Eagles took over at their own 35-yard line with 2:54 on the clock and all three timeouts to work with. Facing 3rd-and-5, Hurts hit Brown but the wide receiver dropped the ball. Ouch. Facing 4th-and-5 from their own 40-yard line, Hurts hit Goedert for a first down as the clock rolled down to the two-minute warning. Phew. Clutch completion. Another Hurts completion to DeVonta resulted in another first down. And then again for another. Facing 3rd-and-11, Hurts’ pass to DeVonta was a tad high (still catchable) and incompletion. Facing 4th-and-11, Sirianni called a timeout that left the Eagles with just two in the event the Eagles turned the ball over on downs. Facing 4th-and-11 for real, Hurts’ throw over the middle to Goedert in traffic was broken up and incomplete. Season.
EAGLES LINEUP NOTES
- Michael Carter II was in at safety ahead of Marcus Epps on the Eagles’ second defensive drive.
EAGLES INJURY NEWS
- Adoree’ Jackson briefly visited the medical tent after the 49ers’ first drive.
- Fred Johnson got banged up and missed a snap on the Eagles’ first drive. Matt Pryor filled in at right tackle for that snap.
- A.J. Brown got up slowly after seeing a deep attempt late in the second quarter. He gingered walked to the sideline and the re-entered the game after an offensive penalty (thus not missing a snap).
- Saquon Barkley got banged up after taking a big hit low in the fourth quarter. Barkley re-entered the game on the next drive.
- Tyler Steen got banged up on the same play that Barkley got injured on. He re-entered the game on the next drive.
- Jordan Davis visited the medical tent in the fourth quarter. He was not initially on the field for the 49ers’ drive that started with 7:55 left in the game. Davis entered the game once the 49ers got into goal-to-go territory.








