It wasn’t pretty, like most early-season games, but the Pittsburgh Steelers made just enough plays to pick up a 20-13 win over the Atlanta Falcons, beginning the Mike McCarthy era on the right note.

The Steelers’ defense was impressive all game long. T.J. Watt added to his Hall of Fame resume, Alex Highsmith had two sacks, Cameron Heyward batted down three passes at the line of scrimmage, and Jaquan Brisker had a key interception in his first start with his hometown team.

Pittsburgh’s offense was inconsistent, but the run game came alive late and the Steelers took care of business, leading to a 1-0 start.

Let’s get to some grades.

QB — B+

I thought Aaron Rodgers had a really good day, and his numbers (24-for-40, 221 yards, one touchdown pass) would have been even better if his receivers helped him. Rodgers had at least one touchdown pass dropped by Roman Wilson, and two others that should have been scores from DK Metcalf.

Even with others struggling around him, Rodgers played at a high level. He made some nice plays in the first half. He scrambled and found Michael Pittman Jr. for a 21-yard gain in the first quarter, and later scrambled to find Pat Freiermuth for a 5-yard touchdown for the Steelers’ first score. Although he was under plenty of pressure, Rodgers showed good mobility, bought time, and made key throws.

He had a nice strike to DK Metcalf in the end zone that should have been caught and a deep ball in the end zone that Roman Wilson should have been hauled in. Late in the first half, he threaded the needle to Freiermuth over the middle, beating linebacker Divine Deablo with a great throw.

In the second half, he had a big throw to Pittman for 28 yards off play-action, hooked up with Metcalf on a 14-yard back-shoulder throw to get the Steelers out of the shadow of their own end zone, and finished the game with a 16-yard play-action strike to Darnell Washington.

Rodgers took one bad sack, but he played at a high level. He would have had an even better day with some help.

RB — C-

Rough day for the running backs overall, though the run game came alive late.

Jaylen Warren’s early fumble set up Atlanta’s touchdown. Though he went nearly 300 touches without fumbling, it was discouraging that he put the ball on the ground in the first week under a new coaching staff.

He destroyed a linebacker on a great pass-blocking rep and had a nice 18-yard catch-and-run in the first half, but it was a quiet performance overall. Fortunately, he saved his best for the fourth quarter, igniting the ground game and bleeding the clock. Warren finished with 10 carries for 46 yards, including a 17-yarder in the fourth quarter that moved the chains and got the Steelers on track.

Warren added five catches for 27 yards out of the backfield, including a long of 18 yards. He caught a lot of checkdown throws, though he didn’t do much with them.

Rico Dowdle didn’t do much, either. The run game struggled in the first half, and Dowdle was targeted three times but never caught a pass. He wasn’t impactful in his Steelers debut, which was a bit discouraging. He finished with eight carries for 15 yards and two catches for six yards.

Better days are ahead, but it was a rough debut.

WR — C-

Roman Wilson had some big plays, hauling in a 20-yarder over the middle on a key 3rd and 15. He saw a lot of targets from Rodgers in the first half, too, including a deep ball into double coverage that he should have caught for a score. He also drew a key 37-yard pass interference penalty as Rodgers showed the willingness to take shots downfield.

Wilson disappeared in the second half, though, which was a bit concerning.

DK Metcalf disappointed in the first half, and that carried into the second. He had two offensive pass interference penalties, one of which wiped out a key play to move the chains. He also dropped a pass in the end zone and later bobbled his first catch of the game.

On a pivotal third down in the third quarter, Metcalf appeared to beat the Falcons’ secondary over the middle. Aaron Rodgers threw a great ball that hit him between the numbers. He dropped it. If Metcalf caught it, he likely would have scored easily. He had a rough day, finishing with just four receptions for 40 yards. He had a key 14-yarder late in the fourth quarter, though.

Michael Pittman Jr. showed up early with a key 21-yard catch-and-run on a scramble drill. He also had a huge 28-yarder on a crossing route off play-action, but he was largely invisible after that, which is concerning. He missed time in the preseason and didn’t have much time to build chemistry with Rodgers.

Pittman finished with three receptions for 58 yards on three targets. Hopefully he gets more work moving forward.

TE — B

Pat Freiermuth had big expectations in the new offense coming into the season, and he got off to a fast start. Freiermuth did a nice job on his 5-yard touchdown reception, finding a soft spot in coverage and letting Rodgers find him. He also had a big catch over the middle late in the first half and was a dependable outlet.

Freiermuth finished with a team-high five receptions for 46 yards and a score. He made plays after the catch, running hard and falling forward to add yards.

Darnell Washington was barely a factor in the passing game until late, ripping off a 16-yard reception. He bounced an Atlanta safety off the turf, similar to his catch-and-run against Cincinnati last year that earned an Angry Runs scepter.

I’d like to see Washington improve as a blocker in the run game, too, but it’s early in the season. He’ll find his groove.

OL — C-

As expected, the Steelers’ offensive line didn’t perform well. There are a lot of moving parts up front, and the group didn’t have much time playing together in the preseason.

Pittsburgh allowed 10 pressures against the Falcons, and Rodgers was sacked twice in the win. Troy Fautanu, Mason McCormick, and Dylan Cook allowed three pressures each in the win, according to Pro Football Focus. Fautanu had to leave the game for one snap due to an injury, forcing Cook over to left tackle and leading to rookie Max Iheanachor’s debut.

I was really concerned with Cook’s performance. He didn’t create much movement in the run game, and he had some ugly reps in pass protection. He also had a penalty for illegal use of hands to the face on a play in which Rodgers was sacked. Spencer Anderson was rough next to Cook, too, getting beat on a play-action pass in the first quarter. Fortunately, though, an Atlanta penalty wiped it out.

The line is a work in progress. It was good to see the group run the football late in the game in the 4-minute drill, but they must find consistency quickly.

DL — B-

Cameron Heyward might be the Steelers’ best player in coverage.

All jokes aside, the veteran defensive lineman batted down three passes Sunday, tying a single-game career high. He was just as good against the run and pressured Falcons quarterback Cooper Rush, too. Heyward finished with three tackles and controlled the line of scrimmage against the run.

Keeanu Benton had some good moments. He had a great pass rush early that drew a holding call, and he finished with three tackles. Derrick Harmon had three tackles, and I thought he controlled the point of attack well throughout. He didn’t flash much as a pass rusher, but his run defense was solid.

Yahya Black didn’t record a stat on the day, but he was called for defensive holding, an unusual penalty. Heyward rightfully ripped the officiating after the game. Sebastian Joseph-Day had two tackles in his Steelers debut, and he was pretty vocal throughout the game.

LB — B+

After offseason criticism, T.J. Watt delivered in a significant way. Watt had two sacks against the Falcons, added a pivotal tackle for loss on a Bijan Robinson run, and later intercepted Cooper Rush and returned it to give the Steelers a 20-10 lead. After a rough 2025 season, many concerns and doubts surrounded Watt, but his performance against the Falcons was encouraging. One of his sacks came from the left side as he moved around.

Alex Highsmith had a very good game. He had a sack on the first third down of the game and drew a holding penalty later on. Highsmith finished the game on a high note with a pivotal sack on a key third down late in the fourth quarter. When he’s healthy, he’s a great pass rusher, and he showed that several times Sunday.

Nick Herbig had some good moments, but his biggest gaffe was a missed tackle in the backfield that Brian Robinson Jr. turned into a 15-yard run. Herbig was in position to stop the run, but he didn’t finish, missing a tackle in ugly fashion. He added two pressures as a pass rusher.

I loved what I saw on the interior from Payton Wilson. He had a team-high 13 tackles and two tackles for loss. He attacked downhill against the run with force and flew around making plays. Some of that training camp hype showed up in a big way. Wilson did have a handful of missed tackles, though, which was concerning.

Patrick Queen had some decent moments, too, finishing with seven tackles. He missed a pair of tackles as well and was lost in space a few times against Bijan Robinson.

DB — B+

Outside of the 24-yard touchdown pass to Bijan Robinson on a swing route out of the backfield, the Steelers’ secondary held up well. That wasn’t much of a surprise, considering Cooper Rush was the quarterback.

Jalen Ramsey had an ugly rep on the Robinson touchdown. He had a key pass breakup earlier in the game; despite getting beat on a route, he recovered nicely. Ramsey had four tackles and finished with one pass breakup.

I liked what I saw from Jamel Dean in his first regular-season game with the Steelers. He defended the run very well, forcing a fumble in the backfield after attacking downhill. He also blew up a run later on, attacking along the sideline and delivering a big hit on the lead blocker. After he missed a pair of snaps with an early injury, he played well, finishing with five tackles.

Asante Samuel Jr. stepped in for Joey Porter Jr. and played well, finishing with one tackle. He allowed just one reception for 21 yards. He had a penalty for a late hit out of bounds, but it felt like a weak call in the moment.

Jaquan Brisker had an impressive homecoming, finishing with six tackles, one pass breakup, and one interception. He was a key piece in the secondary. Pittsburgh limited Drake London to two catches for 29 yards and didn’t let Kyle Pitts catch a pass. Pretty good day overall.

Special Teams — D

I had concerns about the special teams under new coordinator Danny Crossman after he was hired. After one week, those alarm bells are ringing.

The Steelers struggled in kickoff coverage, allowing the Falcons to average 30.8 yards per return. The Steelers gave up a 40-yard return. Pittsburgh’s own return game was hit or miss. Rookie Eli Heidenreich had two returns for 47 yards, averaging just 23.5 yards per return. Rookie Kaden Wetjen had a 27-yard return to open the game but didn’t get another opportunity.

Wetjen had just two punt returns for 13 yards in the win.

Cameron Johnston punted well, averaging 48.5 yards per punt, but the Steelers allowed a 14-yard punt return to Falcons rookie Zachariah Branch.

Chris Boswell missed a 56-yard field goal, and a botched field goal attempt led to Johnston throwing an incomplete pass. Long snapper Christian Kuntz snapped early, but Boswell wasn’t ready and never attempted a kick.

There’s a lot of work to do here.