Carson Wentz: 18/32, 211 YDS, 2 TD, 1 INT
Not Wentz's best game by any means, but the second-year passer continues to get the job done for the Eagles. In his defense, the protection was shaky early, and the offense kept getting pinned in its own end. Wentz also held the ball too long on occasion when the protection was solid and missed some throws that would've extended drives or gone for a touchdown. Regardless, he kept mistakes to a minimum and made enough plays to win. Nick Foles even got into the game at the end.
Complete coverage of the Philadelphia Eagles and their NFL rivals from NBC Sports Philadelphia.
LeGarrette Blount: 16 ATT, 48 YDS, 1 TD
It's not how you start, it's how you finish, and Blount finished strong. The final numbers don't look spectacular - that's 3.0 yards per carry, for those keeping track at home - but Blount put the game ice with four carries for 26 yards and a touchdown on the Eagles' last scoring drive. Corey Clement had the longest run of the game for either team, ripping off a 22-yarder, while Wendell Smallwood managed just two touches total and was curiously absent from the game plan.
Alshon Jeffery: 2 REC, 62 YDS, 1 TD
For the first time all season, we saw vintage Jeffery on a 50/50 ball. Jeffery hit the brakes and went up for the underthrown pass from Wentz, then outraced multiple 49ers defenders to the end zone to finish a 53-yard catch-and-run. Only 2 of 8 targets to Jeffery were complete, but the big play helped put the game away in the second half (see Roob's observations). Mack Hollins came up with three receptions for 30 yards, but also appeared to run the wrong route on Wentz's interception. The group is still very much a work in progress.
Zach Ertz: 4 REC, 34 YDS, 1 TD
Another week, another productive game for Ertz. The 26-year-old didn't necessarily blow up the box score, but he did pick up his sixth touchdown of the season. The other tight ends were involved in the passing attack this week as well. Trey Burton caught two passes for 21 yards, while Brent Celek had one 14-yard grab.
Halapoulivaati Vaitai: Started at LT
The offensive line did not look good and don't blame Vaitai. The second-year player isn't going to make anybody forget about Jason Peters, but he largely played fine in his first NFL start at left tackle. Most of the pressure on Wentz was coming from the right side of the line. It was not Lane Johnson's best day, though the unit as a whole struggled, particularly in the first half.
Fletcher Cox, Brandon Graham, Vinny Curry: 1.0 SK each
The NFL's No. 1 run defense was at it again, limiting 49ers running backs to 54 yards on 18 carries - a meager 3.0 average. The Eagles' front four got two tackles for loss from Vinny Curry and one each from Cox, Graham, Tim Jernigan and Derek Barnett. San Francisco's patchwork line was clearly overmatched, so the Eagles dominated up front, as they should. It wasn't overly impressive given the circumstances but was exactly what it needed to be.
Mychal Kendricks: 7 TKL, 1.0 SK, 2 QBH, 1 PD
Getting the start for Jordan Hicks at middle linebacker, Joe Walker got off to a shaky start. Walker was beaten for a 24-yard completion to tight end Garrett Celek on the second play from scrimmage. It would go down as the 49ers' longest play of the game. The linebackers were stellar after, especially Kendricks, who was all over the place. Nigel Bradham had five tackles and a pass breakup as well and would've had an interception had Rodney McLeod not got there first.
Jalen Mills: 1 TFL, 1 INT, TD
49ers quarterback C.J. Beathard was in way over his head. That much was evident on a woeful pass outside the numbers that was easily picked by Mills and returned 37 yards to paydirt. McLeod had a pick as well when Patrick Robinson came crashing into a receiver as the ball arrived, deflecting the pass into the air. Beathard completed 47.2 percent of his passes for 4.6 yards per attempt against an Eagles secondary that had nothing to fear.
Donnie Jones: 45.8 AVG, 2 IN20
Early on, this was a field-position battle, one that Jones' left leg helped the Eagles win. Jones tied his season-high of six punts, doing his part to keep a bad 49ers offense pinned on its own half of the field on a rainy day. Barnett's blocked field goal ultimately wasn't a factor in the outcome, though it was a big play nonetheless. However, Jake Elliott actually brought the special teams mark down this week, connecting on field goals of 40 and 51 yards, but missing two extra points (see Rookie Report).
Eagles' record: 7-1
Another slow, ugly start, but the Eagles never stop battling. This was a game they should win, and they did, so no bonus points or anything for Doug Pederson for keeping his team focused. Still, it was closer than many would have preferred for a long time, but they toughed it out and slowly overtook an inferior opponent.