Dress rehearsals aren’t always pretty. This was something football fans saw plenty of during NFL preseason Week 3, as some teams don’t look ready for the regular season. Other teams better hope they’re not peaking too soon based on how well they’re playing heading into the final preseason game of 2017.

Among the winners and losers we’re taking a look at is a second-year quarterback who’s facing immense pressure to succeed. Others include a veteran who is fitting in nicely with his new team, a running back who is suffering because he has no support and a young gunslinger who’s just scratching the surface of his full potential.

Winner: Jamaal Charles is back, baby!

Months after getting cut by the Kansas City Chiefs following multiple knee injuries, Charles looks like himself again. The Denver Broncos have been very careful to bring the veteran running back slowly as he recovered from surgery performed last year. In his first game as a member of the Broncos, Charles showed off the signature burst that made him one of the league’s best for years. He finished Saturday’s game against the Green Bay Packers with 42 total yards on just six touches (four carries and two receptions).

After the game, head coach Vance Joseph made it clear that Charles will make the team’s final roster (more on that here). He figures to be a big part of the offense in 2017, provided his health holds.

Loser: Adrian Peterson unimpressive in preseason debut

We’ve heard all summer how Peterson looks as explosive as ever. That Father Time hasn’t touched him, even at the age of 32 and coming off a season-ending knee surgery.

Unfortunately, none of that was on display Saturday as the New Orleans Saints played against the Houston Texans. Peterson gained a total of 14 yards on seven touches (six runs, one catch), averaging just two yards per. Granted, he didn’t have a lot of room to maneuver, but in the past that hasn’t mattered so much. Peterson used to make minced meat out of would-be defenders. He’d either juke them out of their shoes or run them over. He’s just not doing that very often any more.

Winner: Dak Prescott continues to spit fire

The Dallas Cowboys are all set offensively, whether Ezekiel Elliott serves his six-game suspension to open the season or not. On Saturday at home against the Oakland Raiders, Prescott had yet another first-class performance throwing the ball. Leading consecutive scoring drives to open the game, he completed 11-of-14 passes for 113 yards with one touchdown and no interceptions. Elliott made a cameo appearance but barely registered a blip on the radar. Instead, it was Alfred Morris and Darren McFadden running rampant behind the team’s behemoth offensive line.

In two preseason games this summer, Prescott has completed 18-of-22 passes for 219 yards with two touchdowns and no interceptions. He’s shown he’s not going to take any steps backward. There will be no sophomore slump, and Dallas’ offense is ready to roll.

Loser: Jared Goff takes huge step backwards

One week removed from a breakout performance against the Oakland Raiders, Goff came careening back down to earth in crash-and-burn fashion.

Going up against the Los Angeles Chargers, the second-year quarterback turned the ball over twice, one of which resulted in a touchdown on a fumble recovery by Melvin Ingram. Joey Bosa came flying in and strip-sacked Goff, leading to the easy score (watch here). Goff never saw the pressure coming right towards him and didn’t have a firm grip on the ball. The second turnover was even more egregious, as Goff threw a wounded duck on a deep pass that was nowhere near his intended receiver and easily picked off by Jason Verrett.

Winner: Mike Glennon (temporarily) ends QB controversy in Chicago

The Chicago Bears have loved what they’ve seen from rookie quarterback Mitch Trubisky this preseason. He’s been terrific, and his fine play extended into Week 3 when he threw a ridiculous touchdown pass in the fourth quarter (watch here).

That said, the Bears have stated from Day 1 that they wanted Trubisky to stay on the bench this year so he wasn’t being thrust into action. Through two weeks of games, Glennon hadn’t done the team any favors. Finally, when it mattered most in the dress rehearsal for the regular season, Glennon delivered. Finishing with 134 yards on 11-of-18 passing with one touchdown and no interceptions, Glennon proved he’s capable of leading the offense against a tough Tennessee Titans defense.

Loser: Scott Tolzien with another bad outing

Another week. Another uninspiring performance by Indianapolis Colts backup quarterback, Scott Tolzien. Playing with the starters instead of Andrew Luck, who is still on the PUP list heading into the final week of preseason games, Tolzien actually looked like he might finally have a good game. He did finish with 123 yards on 7-of-10 passing, which looks great. However, he made one awful throw, which turned into an easy interception for Pittsburgh linebacker Ryan Shazier.

Through three preseason games, Tolzien has thrown one touchdown and two interceptions. That’s a bad look, especially considering Indy’s defense is considered the weak link. The Colts appear to be headed towards a very slow start to the season, as Luck isn’t expected to be ready to play in Week 1.

Winner: Chris Hogan could be next big things in New England

The New England Patriots lost one of their key offensive weapons this weekend when Julian Edelman was lost for the season. However, in typical next-man-up fashion, it appears they may not miss a beat as Hogan could emerge as Tom Brady’s next go-to guy. In the blink of an eye on Friday night against Detroit, Hogan caught two touchdown passes from Brady over a period of 21 seconds (watch here) to open the game. He finished with four catches for 70 yards and the two scores.

Provided Hogan stays healthy, it’s not a stretch to think he’ll double up his production from last year (38 catches for 680 yards and four touchdowns) in 2017.

Loser: Matt Ryan has awful outing in regular-season tuneup

After playing well in limited action in the first two preseason games, Ryan was terrible on Saturday at home against the Arizona Cardinals. On his first play from scrimmage, Ryan threw it into the arms of Cardinals linebacker Karlos Dansby. It didn’t get much better the rest of the way, either. Ryan led Atlanta’s offense on five drives, which resulted in a total of 72 yards and nary a score.

Last year’s MVP finished the game with just 36 yards on 4-of-11 passing. It was ugly. And while we’re not ready to say Atlanta’s offense is in any kind of trouble, it wouldn’t necessarily be surprising to see the Falcons get off to a slow start. Kyle Shanahan was replaced by Steve Sarkisian this offseason, which could lead to some headaches early.

Winner: ArDarius Stewart breaks out for Gang Green

The New York Jets are a hot mess offensively, which we’ll get into a bit more later on. However, one player who’s been coming on strong is rookie ArDarius Stewart out of Alabama. He’s incrementally gotten better throughout the summer and preseason and finally broke out Saturday night against the New York Giants at MetLife Stadium.

Stewart caught five passes for a total of 82 yards and hauled in two touchdowns — one for 15 yards and one that went for 25. That’s some big-time production, especially considering New York’s quarterback situation.

Loser: LeSean McCoy suffocating under weight of Bills’ passing woes

After trading away Sammy Watkins and seeing Anquan Boldin retire, Buffalo’s passing offense was predictably anemic in Week 3. Tyrod Taylor barely played because he was knocked out with a concussion, and rookie Nathan Peterman has a long way to go before he’s ready to be a starter. In total, the passing attack generated just 4.8 yards per attempt against the Baltimore Ravens.

Opposing defenses no longer have to worry about a vertical threat from Buffalo. They can clamp down on the line of scrimmage, which spells doom for LeSean McCoy’s production in 2017. On Saturday, we saw this in living color, as Shady managed to gain five total yards on eight touches (six runs, two catches). It’s going to be a long, long season for McCoy, the Bills and their fans.

Winner: Jay Cutler proving his worth in a big way

Miami Dolphins Jay Cutler NFL

Fantasy owners, take note: Buy stock in DeVante Parker. After being targeted early and often in Cutler’s first game last week, he was once again clearly Cutler’s favorite guy on Thursday against the Philadelphia Eagles. The veteran gunslinger loves to push the ball downfield, and Parker is all about that action (watch this ridiculous catch). These two are going to be a very exciting duo to watch throughout the season.

Cutler still has some rust to work off, but he’s already showing the Dolphins they made the right move to pull him out of retirement. He finished with 105 yards and a touchdown on 5-of-8 passing and appears to be headed towards a monster season.

Loser: Kirk Cousins, receivers out of sync

Washington finally saw some positive momentum on the ground in Week 3, but Cousins and his receivers showed they’re nowhere near ready for the start of the season.

Cousins finished with just 109 yards on 10-of-19 passing with no touchdowns. He also threw an inexcusable interception that turned into six points. Throwing late to the outside is a cardinal sin for NFL quarterbacks. Cousins knows this. Yet he did it anyway in the second quarter, and Cincinnati Bengals linebacker Vontaze Burfict made him pay on an easy pick-six (watch here). Cousins was also victimized himself by receivers dropping easy passes. It was just an ugly display of offense that gives Washington fans little hope heading into Week 1.

Winner: Blake Bortles wins back his starting job

Bortles is a big winner this week. Chad Henne started the game and wasn’t sharp, which makes Bortles’ performance all the more timely. He had a big game again

st the Carolina Panthers after being made very much aware his job was on the line. As a result, Bortles has been named Jacksonville’s starting quarterback for the 2017 season.

Though, we’d be remiss if we didn’t mention Bortles did throw an interception in the game. We’d also be remiss if we didn’t mention that Bortles having one decent game might end up being the worst thing that could have happened for Jacksonville — a team with playoff aspirations — in 2017.

Loser: Tyreek Hill develops horrific case of butterfingers 

If Hill is going to develop into the type of No. 1 receiver the Chiefs think he can become, then his hands will need to be better than they were Friday night against the Seattle Seahawks. Hill, who is one of the most dynamic players in the league with the ball in his hands, dropped three of the four passes that came his way. One of them came on of a gorgeous deep throw by Alex Smith, who was hit hard as he threw it, down the right sideline. If he had caught the ball, Hill would have scored. Instead, his quarterback endured a big hit for no reason.

Winner: Kyle Shanahan has his offense on the right track

Brian Hoyer has been a mediocre quarterback throughout his entire career. He came into the 2017 season sporting a career completion rate of 59.5 percent. He’s thrown 44 touchdowns in 46 career games. He’s barely won half the games he’s ever started. Yet on Sunday night, on the road in Minnesota, he looked like Matt Ryan for most of the first half.

Making precise throws to Pierre Garcon, he methodically moved the offense up and down the field. He also showed the ability to hit the home run, connecting with speedy Olympian Marquise Goodwin on a 46-yard bomb (watch here). Carlos Hyde did his best Devonta Freeman impersonation on a beautiful 24-yard touchdown strike as well. The offense generally was able to impose its will upon Minnesota’s defense, which was very surprising.

Loser: Christian Hackenberg once again proves he is not an NFL QB

New York Jets quarterback Christian Hackenberg

For the second week in a row, the New York Jets kept Josh McCown out of action and started Hackenberg. And for the second week in a row, the former Penn State quarterback proved he has no business leading an NFL offense.

Hackenberg threw not one, but two pick-six’s in the first half (watch here). Then Bryce Petty came into the game and threw three quarterbacks, making his teammate’s performance look all the worse. Hackenberg did come back into the game after Petty was injured and threw a late touchdown pass. But that doesn’t in any way erase his awful performances of the past two weeks, or the past two years, for that matter.

Winner: John Brown smokes Atlanta’s D for two TDs

It certainly looks like Brown is ready to get back to the form that saw him put up over 1,000 yards a couple years back. Last year was a down season for the receiver, who had his worst campaign as a pro. He’d been battling through a quad injury early this summer and finally made his preseason debut Saturday against Atlanta. Needless to say, he looks as fast as ever. Brown caught just two passes but turned them both into touchdowns, finishing with 49 yards receiving. If he can continue to play well this season, then Arizona’s offense will be much more dangerous, to be certain.

Loser: Vikings vaunted defense got roasted by 49ers

The 49ers aren’t exactly on the hot list of offenses ready to explode in 2017. But you wouldn’t know it if all the information you had at your disposal was their performance Sunday night against the Minnesota Vikings.

San Francisco’s starting offense torched Minnesota’s starting defense. All told, San Francisco racked up 188 yards and 14 points in that first half. The Vikings were undisciplined. Linebackers and defensive backs blew coverage on several plays. The vaunted defensive line failed to generate much pressure, and the entire defense generally appeared to be in no way ready for the beginning of the season.

Winner: Philip Rivers has Chargers offense looking unstoppable

Rivers has played sparingly thus far in the preseason. He played just one series in the first two games, which led to a 13-play touchdown-scoring drive against Seattle’s first-string defense in Game 1. Back for more on Saturday night against the Los Angeles Rams, Rivers played in two offensive series, both of which ended in touchdowns. In three drives this preseason, Rivers has completed 11-of-12 passes for 141 yards with two touchdowns and no interceptions, and his team has scored three touchdowns.

It doesn’t get much hotter than that, folks.

Loser: Injuries to stars pile up

Dallas Cowboys linebacker Anthony Hitchens

The NFL absolutely has to figure out a different way to handle the preseason. Four games is ridiculous on many levels, none more urgently pressing than the number of star players who are being injured on a yearly basis in games that don’t matter and that aren’t being watched by many people in the stands.

We already saw the likes of Odell Beckham Jr., Kerry Hyder, Raekwon McMillan, Trent Murphy and others fall by the wayside this preseason. Then in Week 3, which saw more starters logging more snaps, more top players fell by the wayside.

The Dallas Cowboys lost starting inside linebacker Anthony Hitchens for at least eight weeks with a knee fracture. The Chicago Bears lost starting wide receiver Cameron Meredith for what’s feared to be the entire season with an ACL tear. The New England Patriots watched starting receiver Julian Edelman go down for the season with an ACL tear. Kansas City Chiefs running back Spencer Ware is likely out for the year with a knee injury.

The Buffalo Bills saw Tyrod Taylor sustain a concussion, and there were other big injuries to lesser names as well.