Good things happen if you keep playing hard, and as awful as the Eagles looked in the first half, they did keep playing hard and they were able to end their three-game losing streak and grind out a win Sunday.

After falling behind 13-3, the Eagles outscored the Carolina Panthers 18-5 the rest of the game and get themselves an ugly but desperately needed 21-18 win at Bank of America Stadium.

The win advanced the Eagles to 2-3. Washington lost to the New Orleans Saints, so they’re now 2-3. The New York Giants are in Dallas. They play the 4:00 game.

Here’s three takeaways.

Defense saves Eagles

When the Panthers scored 10 points in the first quarter, everyone was thinking the same thing, here we go again. But the Eagles’ defense settled down and played lights out the rest of the game, allowing just two field goals.

This was a performance the defense really needed and one defensive coordinator Jonathan Gannon really needed.

The Eagles allowed only 267 total yards, got three takeaways, finally made plays on third down, and gave the offense a chance to get its act together.

This was by far the best game this year for the defensive line, and for once it wasn’t just Javon Hargrave — although he did pick up his sixth sack.

The Eagles got terrific pressure from everyone and made this one difficult for Sam Darnold. This is how the defensive line is supposed to play. This is supposed to be the heart of the team, and Sunday they were.

Fletcher Cox finally showed up.

Josh Sweat got a sack.

Even Ryan Kerrigan had a tackle for loss.

Chuba Hubbard ran for 100 yards, and that shouldn’t happen, but overall a very encouraging bounce-back performance from a defense that was embarrassed the last two weeks.

It was awesome to see Darius Slay finally pay off on his huge contract with a two-interception game.

Slay became the first Eagle in five years with two picks in a game (Jordan Hicks vs. Mark Sanchez of the Dallas Cowboys on the last day of the 2016 season) and the first Eagles cornerback with two picks in a game in nine years (Dominique Rodgers-Cromartie vs. Brandon Weeden of the Cleveland Browns on opening day in 2011).

This defense just hasn’t made plays. Not just this year but for a few years. Slay’s interceptions were huge, and even though they only set up three points, they really gave the whole team a lift and helped swing momentum to the Eagles.

Slay hasn’t been playing bad at all. He’s been solid. But he needs to make impact plays, and on Sunday he finally did.

Hurts is a gamer

One thing we’re learning about Jalen Hurts is that no matter how bad things get he keeps his head up, stays positive, and keeps fighting.

We saw that on Sunday in full affect.

He was awful in the first half, although there’s no question his coach didn’t give him much of a chance with his horrible play calling. But he was bad, the offense couldn’t get anything going and things looked pretty hopeless. The Eagles’ first 11 drives resulted in six punts, two turnovers, a safety, and two field goals.

Hurts took some pretty vicious shots, too.

But he kept fighting and kept battling and was able to shake off all the adversity that came before and make some big plays down the stretch.

There’s going to be adversity every week in the NFL. If your quarterback has the ability to work through it, that’s huge.

Big day for special teams

Exceptional day for special teams. Arryn Siposs had another big day helping the Eagles play field position, Jake Elliott made a 58-yard field goal — third-longest in Eagles history — and the biggest play of the game was T.J. Edwards’ blocked punt with four minutes left in the game.