CHARLOTTE — It was one half of one preseason game, against an opponent who wasn't playing starters.
But it was still a good half.
Panthers quarterback Sam Darnold put in a solid 30 minutes of work, and the Panthers beat the Steelers 34-9 to close the preseason.
Darnold was a clean 19-of-25 for 162 yards with two touchdowns and a 119.1 passer rating, the kind of sharp play so many were looking for in his final tune-up for the regular season.
He had only played seven snaps prior to Friday's game, so it was hard for anyone who wasn't at joint practices with the Colts and Ravens to gauge Darnold's progress. But on Friday, playing against the Steelers backups, he had a mostly good night.
There were a few misses (including a couple of high, hard ones, which could be trouble against a starting defense), but he looked like a guy in something resembling a rhythm.
While his prior relationship with Robby Anderson from New York gets talked about a lot, Darnold's clearly found a connection with wide receiver DJ Moore. He had six catches for 48 yards in the first half, and appears to be the guy Darnold's looking for on third (and fourth) downs.
Darnold benefitted from good field position, but took his final drive 84 yards in 12 plays for a touchdown just before the half. At that point, Panthers head coach Matt Rhule could have been justified parking him for the night (Darnold had just hit Terrace Marshall Jr. for a touchdown on the previous series in the second quarter). But Darnold moved the ball efficiently.
Considering he did it all without Christian McCaffrey (who was wearing a bucket hat and watching since he's too important to risk in a preseason game ever again), it was the kind of night Darnold and they needed.
— While Moore looks like Darnold's target of choice when things get tight, Marshall had an impressive preseason.
He finished with nine catches for 181 receiving yards and a touchdown in three games.
Marshall's played well in all three games, and though there have been some rough spots in practices (particularly early in camp), he looks like a guy who is going to be a factor this year.
His emergence also makes for an interesting roster call on veteran David Moore. He came here to be the third receiver, but that job appears to be occupied now. And while Moore has some return experience, he's not a core special teams player. Marshall's injury history probably makes it hard to move on from a known commodity (Moore came from Seattle, along with general manager Scott Fitterer), but Marshall's clearly ahead of him in the offensive pecking order.
— The Panthers defense continued to make plays, with Brian Burns picking off a tipped pass early on.
The Panthers looked fast and physical. Again, they should have, against the Steelers backups. But it was a solid performance, and if the Panthers exceed expectations this year, it'll be as much about the defensive improvement as it is about Darnold and anything the offense does.
— The kicking competition appears to be over, at least as it pertains to Joey Slye.
Recent trade acquisition Ryan Santoso caught a lucky break when his first field goal attempt from 52 yards caromed off the right upright and in.
When Slye had a chance to kick the next field goal, he missed wide right from 49 yards away.
After that, Santoso handled all the extra points in the first half and hit a fourth-quarter field goal, as Slye often walked alone on the sidelines. Players and staffers would occasionally walk by and fist-bump, but what do you really say to a guy when this is happening?
The field goal was Slye's fourth miss of the preseason (two other field goals and a 43-yard extra point). He also missed all three field goals during a live segment in Wednesday's practice, when they brought in one-day kicker Dominik Eberle for competition.
— The Panthers had some injuries of concern.
Rookie wide receiver Shi Smith left with a shoulder injury, and did not return.
The sixth-round pick from South Carolina had a solid preseason, and was likely secure on the 53-man roster.
The Panthers also finished without veteran cornerback Rashaan Melvin, who left the game with a groin injury.
They need him in the next two games, since veteran cornerback A.J. Bouye will miss the first two while serving the rest of a suspension from last year.
— Wide receiver Keith Kirkwood hasn't had many chances this preseason, thanks to a concussion suffered after being hit by a teammate on Aug. 3. And he nearly had the kind of highlight to make up for it.
After the Steelers muffed a punt in the first half, Kirkwood was there and grabbed the loose ball and took it to the end zone. By rule, you can't return it since the Steelers never controlled the ball, but he was credited with the fumble recovery.
He's facing long odds to make the 53-man roster since the Panthers are deep at receiver, but he played solidly on special teams, and at least put out some tape that other teams might enjoy.
— Dwayne Haskins probably isn't ever going to vacation in Charlotte.
The backup quarterback lost the opening coin toss Friday, and it never got any better. The Steelers started him to give him a long look, and he might have been better off if they hadn't.
Before a late fourth-quarter scoring drive, he was 4-of-11 for 29 yards and an interception, for a passer rating of 7.0.
Last year, Haskins was benched after a pair of picks here when the Panthers beat Washington, which led directly to him becoming a Steeler.
View in-game photos from the Panthers preseason finale against the Steelers.