PHILADELPHIA — The Eagles keep winning, but their offense keeps sputtering. Sunday’s 31-25 escape in Tampa Bay was the latest case: an early surge, a second-half collapse, and renewed questions about how Kevin Patullo is deploying A.J. Brown.

Brown’s stat line against the Buccaneers was jarring — two catches for 7 yards on nine targets — and the receiver was clearly frustrated. So all eyes and ears were on the first-year offensive coordinator Tuesday at NovaCare Complex.

“A.J. and I have a great relationship,” Patullo said. “I know where his heart is. He wants to win. … He feels like he can do everything and anything to help us at all times. So as far as I’m concerned, him and I are in a good spot.”

When asked if Brown’s usage had become predictable, Patullo responded that game plans shift weekly. “Sometimes the ball finds him, and sometimes it doesn’t,” he said. “Going into every game, you plan on making sure he’s the primary. If it doesn’t go his way, that means usually we’re on rhythm, or something good’s happening and (quarterback) Jalen (Hurts) is reading it out, it’s going to other guys, and that can happen … you just don’t want to really force it.”

But nothing else good was happening. DeVonta Smith only had two catches. Saquon Barkley ran for just 43 yards on 19 carries. Sure, tight end Dallas Goedert had four grabs and a pair of TDs, but otherwise the offense was stagnant.

Patullo’s explanation may be sound but the production remains muted. Brown has yet to top 65 yards in a game this season, and his presence in the red zone has been sporadic. For a player with a history of thrashing defenses, those numbers speak loudly.

Passing game peaks and valleys

Hurts looked in complete control in the first half against Tampa Bay, completing 15 of 16 throws for 130 yards and two touchdowns, both to Goedert. The Eagles led 24-6 at halftime and appeared poised for a rout.

The second half was the opposite. Hurts — who took several big hits — went 0 for 8 and the offense produced only 33 total yards. Tampa outgained the Birds 277-33 after the break. What had been crisp reads and quick throws dissolved into stalled drives and wasted possessions.

Patullo admitted first-down failures doomed rhythm. “We couldn’t get out of first down, and obviously that starts with us as staff, to try to make sure we’re more productive on first down,” he said. “In the first half we were on the attack. The second half we got off rhythm, and we just didn’t really get back in phase.”

Through four weeks, the Eagles rank in the middle of the league in passing output. That kind of volatility is not what you expect from a roster with Brown, Smith and Goedert as options.

Running game struggling, too

If the passing game is uneven, the running game has been virtually as underwhelming. The Eagles have rushed 99 times for 366 yards — just 3.7 yards per carry — with Barkley supplying the lone touchdown up the Sunday on a well-timed tush-push fake.

Patullo defended the ground attack as a work in progress. “We’ve been so close on so many runs,” he said. “At times when we need to run it, we’ve done a decent job of picking up yards in critical moments … but it looks different. Each year looks different.”

Inside runs have been particularly fruitless. According to league tracking, Philadelphia ranks near the bottom of the NFL on carries up the middle, averaging only 2.0 yards. Patullo said the staff is constantly reviewing gap versus zone angles, but the right formula has yet to click.

Part of the problem is continuity on the offensive line. The vaunted unit simply hasn’t been what it was a year ago.

“The offensive line isn’t blameless,” left tackle Jordan Mailata said. “The offensive line just isn’t playing well.”

Right tackle Lane Johnson has been in and out of the lineup, left guard Landon Dickerson entered the season banged up, and Tyler Steen has been learning on the fly at right guard. “It has looked different this year compared to last year,” Patullo acknowledged. “We were a little more steady in those spots. But throughout time we’ll continue to work on that and see where it goes.”

Identity still forming

Asked directly about offensive identity, Patullo conceded the unit is still taking shape. “Similar to last year, early in seasons you’re trying to figure it out,” he said. “You’re trying to do what you have to do to win the game … each defense and each week presents something totally new. We’re starting to feel some things that have flowed through a few games now.”

That flexibility has allowed Philadelphia to survive tests against the Chiefs, Rams and Buccaneers. But “survive” is the key word. The Eagles are winning, yet rarely dominating for 60 minutes.

Nakobe Dean intrigue

Inside linebacker Nakobe Dean is close to returning from left knee surgery, slightly ahead of schedule. He suffered a torn patellar tendon in the playoffs against the Green Bay Packers on Jan. 20 and still needs time to ramp up into game shape.

“He played great last year,” defensive coordinator Vic Fangio said. “Besides being the signal-caller guy and being a leader — you can’t be a leader if you don’t play good, and he played great for us. As far as where he is at now, either this week or next week he’ll start his practice window and then we’ll see where he is at.”

First-round rookie Jihaad Campbell has been dynamic alongside Zack Baun, but Dean — only 24 years old on the final year of his contract — remains the elite option when fully healthy. It will be interesting to see how Fangio deploys Dean and Campbell in the coming weeks. Campbell could contribute on the edge, though Fangio said “not right now.” That doesn’t preclude Baun from playing there, either.

The Eagles are suddenly linebacker-rich. Stay tuned.

•••

NOTES: Fangio wasn’t happy about blown coverages by Campbell and fellow rookie Drew Mukuba, which led to a pair of 70-plus-yard TDs by Tampa Bay. He said he expects them to learn from the mistakes, emphasizing “a lot of teaching points.” … Fangio called second-year corner Quinyon Mitchell’s performance his best in the NFL so far. … The Birds (4-0) host Denver (2-2) at 1 p.m. Sunday. The Broncos just beat Cincinnati 28-3.

Follow Christiaan DeFranco on X at @the_defranc.