Ugly. Repugnant. Alarming. Putrid. Those are all great words to describe some of the play in NFL Week 1. It wasn’t all bad, though. In fact, some of the teams and players who took the field put on magnificent shows for their fans.

A wide range is to be expected as teams get their feet wet in the first meaningful games of the season. And we certainly got that.

Among the good was an unexpected road win for a team that is known for losing. Among the bad was a quarterback performance that had people talking for all the wrong reasons. We’ll delve into both of those angles looking at the biggest winners and losers from NFL Week 1.

Winner: Tyrod Taylor, LeSean McCoy thrash the Jets

There was a lot of negative press surrounding the Buffalo Bills this summer. All the moves the front office made, including getting rid of the team’s top receiver, combined with Tyrod Taylor’s poor preseason and concussion, led many (including us) to believe the Bills would struggle offensively this year. It was only one game, and the New York Jets certainly don’t provide the best test, but they do have a defense that can be dominant at times.

That wasn’t the case Sunday at MetLife Stadium. Taylor rebounded from a first-drive interception to post solid numbers. He threw two touchdowns while LeSean McCoy and Mike Tolbert combined to rush for 152 yards and a touchdown. It was a solid way to start the season and helped the Bills win, 21-12, to start the season on a positive note.

Loser: Carson Palmer ice cold to open the season

Turnovers are the vehicles in which games are won and lost. Palmer, who had a down year in 2016, appears to be maintaining that downward trend in his late-30s. He threw three interceptions, one of which was returned 35 yards for an interception. Palmer was extremely erratic, throwing high on a number of occasions, and finished with 269 yards on 27-of-48 passing. A garbage-time touchdown saved fantasy owners, but it did nothing to soften the blow of losing by 12 points.

Winner: Jags lean on Fournette, defense in huge road win

Jacksonville Jaguars defensive end Calais Campbell sacks Houston Texans quarterback Tom Savage

If you picked the Jacksonville Jaguars to rout the Houston Texans in Houston, claim your prize. We certainly didn’t see this one coming, as the Jags thumped their AFC South rivals 29-7. Defense reigned supreme. The only score allowed by the defense came in the third quarter when Deshaun Watson threw his first NFL touchdown. In total, the Texans managed just 203 yards. The Jags logged 10 sacks total, Calais Campbell set a franchise record with four, and they forced four turnovers.

On the other side of the ball, it was all about Leonard Fournette. The rookie running back totaled 124 yards and a touchdown on 29 touches. Meanwhile, Blake Bortles only threw the ball 21 times. That’s a recipe for success. We’ll have to wait and see if Jacksonville sticks to it as the season rolls along.

Loser: Patriots get roasted by Alex Smith

New England’s defense has long been one of the best in the league. But Bill Belichick and Matt Patricia’s new-look defense was absolutely abused on Thursday night. The Patriots allowed 26 first downs and 537 yards worth of offense by Kansas City, in their own house, no less. Once linebacker Dont’a Hightower was forced from the game, things got really bad as Kareem Hunt ran wild and Alex Smith had all day to throw. Also, new cornerback Stephon Gilmore — a guy the Pats paid in a huge way in free agency — was absolutely toasted by Tyreek Hill. Needless to say, the defending Super Bowl champs have their work cut out.

Winner: DeShone Kizer impressive in rookie debut

It wasn’t perfect by any measure, but Kizer had a nice outing against a divisional rival on Sunday. Helping his team push the Pittsburgh Steelers to the limit, Kizer was composed, confident and for the most part played a very clean game. The rookie did have one awful throw, staring down his receiver and then throwing well short on his lone interception of the game. In the end, he finished with 222 yards and one touchdown passing, adding 17 yards and a touchdown on the ground. If not for the Steelers gaining an easy score early on a blocked punt (watch here), Kizer might have won his first game. As it was, he proved Hue Jackson made the right choice to start the Notre Dame product.

Loser: Yep, Josh McCown is still a bad quarterback

The Jets' quarterback situation is laughable.

It’s pretty bad that McCown is legitimately the best quarterback the Jets have at their disposal. He came into Sunday’s game against the Bills having won just two games in his past 22 starts. He did not win No. 3 in Week 1. McCown threw two interceptions, both with the game in reach in the final seven minutes of the contest. He also managed just 187 yards on 26-of-39 passing, averaging 4.8 yards per attempt and 7.2 yards per reception. In total, the Jets managed just 3.96 yards per play, which is just awful. Buffalo’s defense isn’t all that scary, either. It’s going to be a long, long season for Gang Green.

Winner: Bears have something special in Tarik Cohen

We saw this during the preseason: Tarik Cohen is bottled lighting. And he’s going to strike fear into the hearts of opposing defensive coordinators all year long. Blessed with extraordinary quickness, wiggle and raw explosiveness, he can do things that make your eyes bug out. On Sunday, Cohen was Chicago’s leading receiver, catching eight passes. He ended up touching the ball 13 times, which he turned into 113 yards and a touchdown. He and Jordan Howard combine for one of the league’s most intriguing thunder-lighting duos, and they’ll help keep Chicago competitive all year long.

Loser: Le’Veon Bell ineffective after extended holdout

It doesn’t matter what kind of shape players are in. Getting into football shape is a different animal altogether. We saw this clearly as Le’Veon Bell struggled in his first game of the season after he held out all summer to avoid getting hurt following failed contract negotiations with the Steelers. Last year, Bell averaged 157 yards per game. On Sunday against the Browns, he totaled just 47 yards on 13 touches — a far cry from the 30 he said he was ready for. It’s worth pointing out Cleveland has a tremendously upgraded defense, but what we saw Sunday was very unlike Bell. It’s going to be interesting to see how long it takes him to get back to his 2016 form.

Winner: Matt Ryan and Falcons escape Chicago with comeback win

For a while there, it looked like the Falcons weren’t going to shake their Super Bowl hangover on the road in Chicago. The Bears put up a heck of a fight defensively, holding the Falcons to just 10 points all the way through the tail end of the third quarter. Then Matt Ryan and the Falcons found their hangover cure and finished the game with three consecutive scoring drives to eke out a win by the score of 23-17. Tight end Austin Hooper was the star of the game, catching two passes for 128 yards, including an 88-yard touchdown in which he stiff-armed a guy into next week (watch here). It was a gut-check win for last year’s NFC champs, to be sure, and the Bears nearly pulled off the upset if not for three consecutive dropped potential touchdowns at the end.

Loser: Colts are a slow-motion train wreck

We knew the Indianapolis Colts would be bad. They feature a godawful offensive line, a “starting” quarterback who is mediocre (at best) and a defense that would struggle to stop a toddler from getting into the end zone right now. So it’s hardly shocking the Colts lost their first game on the road. That said, what transpired on Sunday in Los Angeles was as ugly as it gets in the NFL. Tolzien threw a pick-six on the team’s first offensive possession, and things didn’t get any better going forward. In the end, he had to be benched for Jacoby Brissett and finished with two pick-sixes against him. Defensively, Indianapolis offered no resistance at all in the passing game, allowing Jared Goff to have a career game. The embarrassing final score of 46-9 sends Chuck Pagano and Co. back to Indianapolis with their tails between their legs.

Speaking of Pagano, he legitimately forgot which team he had just coached against after the game.

Winner: Duane Brown gained tremendous leverage as he holds out

Duane Brown Texans

As we mentioned before, Houston surrendered an astonishing 10 sacks to Jacksonville. That’s the kind of number you rarely see in the NFL, and it highlighted one person in particular who was nowhere near the action. Texans left tackle Duane Brown has been holding out for a new contract since the start of training camp. He was due to make $9.4 million this season, but none of that is guaranteed. He’s 32 years old and has been one of the better left tackles throughout his career, so it’s understandable he wants one final big payday with a nice chunk of guaranteed money. Needless to say, watching Houston’s line without Brown is a stark reminder of just how valuable he is. It’s going to be fascinating to see how things unfold from here. Brown has a ton of leverage, that’s for sure.

Loser: San Francisco’s offensive line was a dumpster fire

Go back and watch the tape. We dare you to find a dozen instances in which the San Francisco 49ers won at the line of scrimmage on offense. You can’t do it. On almost every single offensive snap against the Carolina Panthers, defensive players were shooting gaps, if not running offensive linemen over en route to the ball. We knew the 49ers would be a work in process. But based on how the offensive line looked in the preseason it appeared that unit might be a real strength. That wasn’t the case in Week 1. If anything, San Francisco’s offensive line was the weakest link. The 49ers managed just 217 total yards and scored just three points in a blowout loss at home. Clearly, Kyle Shanahan (who lost his cool in a big way at one point) has a lot of work to do.

Winner: Impressive D in Dallas should scare the heck out of NFC

The New York Giants were awful on Sunday night, losing 19-3. There’s no denying the offense was out of sync, or that the offensive line is a dung heap. But we’re giving even more credit to the Dallas Cowboys for shutting them down than we are worried about New York’s offense. The team’s front seven constantly put pressure on Eli Manning, and the secondary did a fantastic job hanging with receivers. The Cowboys’ defense absolutely dominated, holding the Giants to 224 total yards, sacking Manning 3 times and forcing him into a bad interception.

Combined with the power of the Dallas offense, this is a frightening development for the rest of the NFC. The defense was supposed to be the weak link. It most certainly was not in Week 1.

Loser: Bill O’Brien chose the wrong quarterback

It’s never an easy decision to sit a first-round rookie quarterback, especially one that has been purchased at great cost in a trade-up scenario like Deshaun Watson. However, Texans head coach Bill O’Brien, always very conservative, chose to go with veteran Tom Savage, who has been with him since he started his tenure in Houston. Savage has very little experience himself and is extremely limited as a passer, but obviously O’Brien felt a lot more comfortable with him than a rookie, however talented he may be.

Big mistake. As Houston’s offensive line was overwhelmed by Jacksonville’s defensive front Sunday, Savage’s deficiencies were magnified to the nth degree. He threw an interception and lost two fumbles in the first half before O’Brien finally benched him at halftime. While Watson was pressured just as much, his mobility served him well, and he managed to engineer a scoring drive, whereas Savage was wholly incapable. O’Brien really needs to suck it up and start the rookie. He cannot do what he did last year when Osweiler was obviously the wrong guy but he stuck with him anyway. If he does, it’s a wasted season for Houston.

Winner: What a debut by T.J. Watt

Kizer wasn’t the only impressive rookie in the field in Cleveland Sunday. Steelers first-round pick, T.J. Watt, had himself a phenomenal day as well. He came up with the lone interception thrown by Kizer, dropping back into coverage and making a nice play on the ball. Watt also registered six solo tackles, seven total tackles, two sacks and two quarterback hits. Showing the same disruptive abilities as his older brother, this Watt brother appears to be the answer on the edge Pittsburgh’s been looking for the past few years.

Loser: Seattle’s offensive line is embarrassingly bad

Seattle Seahawks quarterback Russell Wilson

Just as we predicted, Russell Wilson was running for his life on Sunday at Lambeau Field against the Green Bay Packers. The Seattle Seahawks have inexplicably ignored making meaningful additions to their offensive line the past few years, and Wilson has suffered. The elusive quarterback was constantly under pressure, was sacked three times and hit another seven times. He got little help from his running backs, who also had nowhere to run. In the end, Seattle managed just nine points and 225 total yards. Despite a tremendous effort by the Legion of Boom, the Seahawks never had a chance in the game.

Winner: Jared Goff has outstanding 2017 debut at home

What a difference a year makes. After enduring one of the worst rookie seasons we’ve seen in a while as he was mismanaged by Jeff Fisher, Jared Goff’s 2017 season got off to a shimmering start. Granted, he was lucky the Rams were hosting the hapless Colts, but Goff took this opportunity and ran with it. Completing 21-of-29 passes for 306 yards with one touchdown and no interceptions, Goff was dealing strikes all game long. Eight players caught passes, and three of them caught at least four. It was a tremendous way to get the new season started. It’s obvious Sean McVay was the best thing that could have happened to the former Cal Berkley star.

Loser: Kirk Cousins, Washington offense in trouble

We wondered what Cousins would look like this year without offensive coordinator Sean McVay and without his two reliable receivers, DeSean Jackson and Pierre Garcon. During the preseason, it looked bleak. Then on Sunday at home against Philadelphia, it became clear that this offense is really in trouble. This team has no rushing attack. Take away Cousins’ 30 yards and you’re looking at a team that gained 34 yards on 13 carries.

Cousins managed just 240 yards on 23-of-40 passing. None of that’s any good. He did throw a touchdown, but that score was pretty much wiped away by the three turnovers he accounted for, one of which was turned immediately into six points when Fletcher Cox took a fumble recovery to the house. The Redskins have no balance offensively. And while Terrelle Pryor is talented, he’s not the security blanket type. It’s going to be interesting to see if there’s anyone on Washington’s roster who can be, because it’s clear Cousins needs one right now.

Winner: Alex Smith makes early statement on road against Pats

Raise your hand if you thought Alex Smith would morph into the second coming of Tom Brady in Brady’s own house Thursday night. Nobody? Yeah, his performance came out of nowhere. A guy who’s long been known as a game manager who isn’t at his best throwing deep, Smith torched that stereotype and stomped out the ashes. He completed two passes of at least 75 yards (watch here and watch here), finishing with 368 yards and four touchdowns in Kansas City’s shocking 42-27 win over the defending Super Bowl champs.

Loser: Andy Dalton was a turnover machine

We saved the worst for last. Andy Dalton was as bad as we’ve ever seen on Sunday. He accounted for five turnovers — four interceptions and a fumble — and doomed the Bengals to a shutout loss at home to open the season. The Bengals are lucky their defense didn’t crumble, because only two of those turnovers turned into points for the Ravens. But a 20-0 drubbing in front of your home fans is bad enough as it is. The outrage at Dalton’s performance can be seen in the way social media responded to his ghastly showing (it wasn’t pretty). Cincinnati is coming off a 6-9-1 campaign. If Dalton and the offense doesn’t perk up, the Bengals could be in for another lost campaign.