After nearly three weeks of practices and the doldrums of long, hot afternoons of training camp, the Ravens got their first taste of competitive football against someone other than themselves Friday night at M&T Bank Stadium. Or, at least Baltimore’s reserves did.

With quarterback Lamar Jackson and most of the team’s starters not playing, the Ravens’ offense struggled to find any sort of rhythm and lost to the Philadelphia Eagles, 16-13, on a 49-yard field goal by Jake Elliott as time expired in the preseason opener for both teams.

“Many good things and many things to work on,” Ravens coach John Harbaugh said. “That’s the thing I told [the team] is the great thing about a first game is you have an opportunity to see exactly where you’re at. You get to see some good stuff and you get to see where you’re exposed and what you need to work on. Sometimes that’s hard to see in practice.”

The result was, of course, inconsequential, though it gives Baltimore a three-game preseason losing streak after its NFL-record 24-game winning streak in exhibitions ended last year. More pertinent was how the players performed, from the offensive line — where there are three starting jobs up for grabs — to the secondary — where Nate Wiggins made an immediate impact while at times looking like the rookie he is.

It also marked the debut for defensive coordinator Zach Orr, who in addition to being the second-youngest defensive coordinator in the league at age 32 made his his debut calling plays. The offense, meanwhile, unsurprisingly struggled without Jackson. Baltimore had just 164 yards (compared with the Eagles’ 259) and was an abysmal 2-for-12 on third down. But the numbers only told part of the story.

Here’s a look at who stood out and who didn’t.

Who stood out

Nate Wiggins: It didn’t take long for the Ravens’ first-round pick to make an impression, breaking up three passes on the Eagles’ opening drive. That included one deep down the sideline intended for John Ross from former Pittsburgh Steelers quarterback Kenny Pickett and another on fourth-and-8 intended for Joseph Ngata to end the drive.

The former Clemson standout’s speed was obvious as he had little trouble keeping close in coverage, but he appeared to have a mix-up on a 7-yard touchdown catch by running back Will Shipley with 35 seconds remaining in the first quarter.

Wiggins got sucked inside on the play, with Shipley slipping out of the backfield for an easy, wide-open grab. Afterward, the cornerback appeared to utter “crap.”

Most concerning, however, is that Wiggins left the game in the third quarter with a shoulder injury after making a tackle. Harbaugh did not have an update on his condition and said he will undergo testing Saturday, but the coach was pleased with the rookie’s performance.

“I thought they kind of went at him a little bit, which was good to see,” Harbaugh said. “When you’re a corner of his caliber, he wants that. … He played a good game.”

Unfortunately, when he’ll be available for the next one is a major question mark, and it puts some stress on a secondary that is already without cornerbacks Arthur Maulet (knee), Trayvon Mullen (shoulder) and T.J. Tampa (sports hernia).

Owen Wright: With neither Derrick Henry nor Justice Hill playing, the bulk of the carries fell to second-year back Owen Wright and fifth-round draft pick Rasheen Ali.

Of the two, Wright, who got the start, clearly stood out, showing good speed and hole recognition while running hard. On the Ravens’ opening drive of the game, the 25-year-old undrafted free agent out of Monmouth who spent last season on the practice squad accounted for all 29 of Baltimore’s yards. That included a 12-yard burst up the middle on the Ravens’ first play from scrimmage and a short catch that went for 17 yards, eventually leading to a 46-yard field goal by Justin Tucker.

Wright, a Bethesda native who starred at Georgetown Prep, finished with 33 yards on seven carries, along with the one catch.

“I really just wanted to show that I was consistent, [that] I could make plays on special teams and on offense,” he said, adding that he has a much better understanding of the scheme and the offensive concepts now compared with a year ago when he was just trying to make roster. “Having that year under your belt is huge.”

Patrick Mekari, Roger Rosengarten: With openings at right tackle as well as both guard spots, there is still a lot to be determined when it comes to who will land those starting jobs. Friday provided the best look yet at how that competition is shaping up.

Baltimore opened the game with veteran Mekari at right tackle, Daniel Faalele at right guard, Ben Cleveland at center, Andrew Vorhees at right guard and veteran Josh Jones at left tackle. Starting left tackle Ronnie Stanley and Pro Bowl center Tyler Linderbaum, who has been dealing with an undisclosed injury, unsurprisingly did not dress.

As for who did play, Mekari performed as expected and held his own. Rosengarten, the rookie second-round pick, showed good mobility and did not appear to get pushed around much at right tackle as he rotated regularly with Mekari, notably helping clear the way for a 9-yard run by quarterback Josh Johnson in the second quarter.

“I lean on the vets a ton,” Rosengarten said. “I’m building off the confidence I already have and the guys already next to me.”

Cleveland, meanwhile, said he was pleased with the group’s communication in what was his first extended action at center, which went off without a hitch.

“Offensively we definitely have to get our run game going,” Cleveland said. “I think our pass protection was pretty solid most of the night.

“I think the most challenging part was just being first game back of the year, just getting back into the grove of things and getting a feel for the speed of the game. But that’s very short-lived.”

Jordan Stout: With a game that lacked much if anything in the way of offense, the Ravens’ third-year punter had a fairly busy night. And he handled it with aplomb.

Stout had six punts and averaged 51.5 yards per kick, including a field-flipping 64-yarder in the third quarter.

With the Ravens stalled on their own 16-yard line, Stout uncorked one to the Eagles’ 20 that was returned just 6 yards.

Who didn’t stand out

Daniel Faalele: The Ravens continue to give Faalele a look at guard, and it continues to look like an odd fit given his size (6 feet 8, 380 pounds).

It didn’t play out all that well, either, for the third-year player. He still looks a bit slow on basic fundamentals, and he was flagged at one point for a false start, something that at times has been habitual for the group throughout training camp.

Faalele started the second half as well and didn’t show much improvement.

Josh Johnson, Devin Leary and Emory Jones: Johnson was long ago declared Baltimore’s No. 2 quarterback, but he didn’t show much command.

The 38-year-old veteran completed just 4 of 12 passes for 62 yards with zero touchdowns in a listless first half of offense. His longest completion of the night was for 19 yards to wide receiver Tylan Wallace, with Wallace doing a nice job of snatching the back shoulder throw. Johnson finished with an abysmal 51.4 passer rating.

“Timing and that sort of thing, that’s tough to evaluate,” Harbaugh said. “Guys aren’t all out there. It’s not always gonna look real great. I thought he handled himself well, made some good throws, protected the football and got us in the right place.”

Leary, a sixth-round pick out of Kentucky, was even worse.

He completed 6 of 10 passes for just 37 yards, though he did have a fourth-quarter sneak for a touchdown to tie the game. Harbaugh said that Leary also wasn’t on the same page at times and had receivers running the wrong routes a couple of times.

Both quarterbacks were sacked once. Neither had a turnover, though Johnson should have been picked off by rookie cornerback Quinyon Mitchell on a poor throw late in the second quarter.

But Jones, an undrafted free agent out of Cincinnati, made the biggest mistake of all on his only snap of the game. After Elliott missed a go-ahead 50-yard field goal attempt with 21 seconds left, Jones was immediately strip-sacked by Patrick Johnson, who also recovered the fumble at the Ravens’ 32-yard line. Given another chance, Elliott kicked the game-winning 49-yard field goal as time expired.