Vikings kicker Daniel Carlson might have kicked his way out of a job on Sunday during a wild 29-29 tie that had everything — well, except for a winner.

In a game that had a heroic performance from Aaron Rodgers and an amazing fourth-quarter comeback by the Vikings, it was a kicker who stole the show, and not in the kind of way a kicker wants to steal the show.

The Vikings likely would have escaped Lambeau Field with a win, but Carlson kept that from happening after an 0-for-3 showing that included a 35-yard miss on the final play of overtime and a 49-yard miss with just under eight minutes to play in overtime.

For Vikings fans, it was like a nightmare within a nightmare. The franchise has a long history with kickers who manage to miss when the game is on the line, and Carlson likely just etched his name into Vikings infamy with his performance.

It’s almost too bad things ended in a tie, because this was the type of game that deserved a winner. On the Packers‘ end, fans spent all four quarters holding their breath hoping that Aaron Rodgers didn’t injure any other part of his body. Despite an injury to his left knee that kept him out of practice all week, Rodgers still came through with a huge performance, throwing for 281 yards and a touchdown. Even more impressive is the fact that he did that while taking four sacks.

The 75-yard reception was Diggs’ second touchdown catch of the quarter.

The only thing more impressive than Diggs’ 75-yarder was this 22-yard touchdown catch by Adam Thielen that almost certainly shouldn’t have happened. The Packers had two defenders in the correct spot; they just couldn’t make a play, and Thielen did.

As for Carlson, he might not be the only kicker in the unemployment line this week, and that’s because there were multiple missed kicks around the NFL. Packers kicker Mason Crosby was 5 of 6 against the Vikings, but his only miss was a big one. He went wide left on a 52-yard field goal that would have won the game on the final play of regulation.

Browns kicker Zane Gonzalez had an equally bad showing with a 2-for-4 performance on field goals in a game that the Browns only lost by three. Gonzalez also missed two extra points. Oh, and let’s not forget about Texans kicker Ka’imi Fairbairn, who missed a 54-yard field goal in a 20-17 loss to the Titans.

The Raiders also had a special teams gaffe when Mike Nugent‘s extra point was blocked in a game that Oakland only lost by one. Basically, it was an ugly week for kickers, and everyone seemed to notice.

That’s why kickers are getting an “F” this week. Now to the team grades.

Green Bay 29-29 tie with Minnesota

Vikings: B

After struggling early in this game, the Vikings rebounded by playing a nearly flawless fourth quarter. The only reason this game went to overtime is because Kirk Cousins threw three TD passes in fourth, including two wild ones (an improbable 22-yard pass to Adam Thielen and a 75-yard score to Stefon Diggs). Unfortunately for Minnesota, not everyone was flawless for them in the game; the Vikings’ special teams unit was especially bad. Not only were there the three missed field goals, but Minnesota also had a blocked punt returned for a touchdown in the first half.

Packers: B

If the Packers learned one thing on Sunday, it’s that having Aaron Rodgers play on one leg is better than not having Aaron Rodgers at all. Despite the injury, the Packers quarterback still managed to throw for 281 yards and a touchdown. The Packers could have won this game in regulation, but Mason Crosby missed a 52-yard field goal attempt after being iced by Vikings coach Mike Zimmer. It was a long day for kickers.

Atlanta 31-24 over Carolina

Panthers: C

After shutting down the Cowboys in Week 1, the Panthers defense got shredded in Atlanta. The Panthers had absolutely no answer for a Falcons offense that totaled 442 yards. To put that number in perspective, the Panthers didn’t give up more than 400 yards in a game all of last season. When an offense explodes like that on Carolina, it almost always means a loss. Since 2013, the Panthers are 0-7-1 when they give up 420 offensive yards or more in a game.

Falcons: B+

After being mocked for his red zone calls in Week 1, Falcons offensive coordinator Steve Sarkisian apparently took that personally, because the Falcons definitely looked better on Sunday. In four trips to the red zone, the Falcons scored four touchdowns, and the most improbable part might be the fact that Matt Ryan rushed for two of those scores. Ryan had more rushing touchdowns against Carolina than he had in the past six years combined (1). With Devonta Freeman out, the Falcons also got a huge performance from Tevin Coleman, who rushed for 107 yards, the second highest total of his four-year career.

New Orleans 21-18 over Cleveland

Browns: C+

If the Browns are going to get rid of Josh Gordon, they might want to think about trading him for a kicker, and that’s mainly because Zane Gonzalez probably isn’t going to be welcomed back to Cleveland after his performance against New Orleans. The Browns kicker missed two extra points and two field goals in a three-point loss, and that’s not even the ugly part. The ugly part is that two of the misses came in the final 80 seconds of the game.

Saints: C

Sometimes you can win in the NFL when you play completely average football, and the Saints proved that on Sunday. This game had upset written all over it until Drew Brees and Michael Thomas bailed the Saints out in the fourth quarter. After scoring just three points through three quarters, Thomas helped the Saints explode for 18 points in the game’s final quarter by catching two touchdown passes. Thomas caught 12 passes for 89 yards in the game and has now 27 receptions on the season, giving him the most receptions of any NFL player through two games since 1950. Although this win wasn’t pretty, the Saints will take it, and that’s mainly because they almost always lose in the first two weeks of the season. Since 2014, New Orleans is 1-9 in the first two weeks of the season, with their only win coming in this game.

Tennessee 20-17 over Houston

Texans: C

After electrifying the NFL with Deshaun Watson last season, the Texans offense has crashed and burned so far in 2018. There’s a lot of blame to go around for the team’s struggles, but let’s go ahead and pin most of it on the team’s offensive line, which gave up four sacks against the Titans. If Watson wasn’t a mobile quarterback, that number might have been doubled.

Titans: B+

With Marcus Mariota and two starting offensive linemen out due to injury, Titans coach Mike Vrabel decided to get crazy with the team’s playbook, and it definitely paid off. In this game, we saw the Titans get a 66-yard touchdown on a fake punt, we saw the Titans go for it on fourth down from their own 32, and we saw Tennessee break out the Wildcat with Derrick Henry even completing a pass. Vrabel put on a coaching clinic, which probably felt especially good since he spent the past four seasons as an assistant on Houston’s coaching staff.

Indianapolis 21-9 over Washington

Colts: B

The defense doesn’t ever really get much credit, so we’re going to give them all the credit here. Not only did they sack Alex Smith three times, but they also held the Redskins to just 65 yards rushing, marking the first time since 2009 the Colts have an an opponent to under 70 rushing yards in consecutive weeks. They also kept the Redskins out of the end zone, which is a big deal, because the Colts almost never do that. This game marked just the second time since December 2014 that Indy held an opponent to single-digit scoring. If the Colts defense keeps playing like this, Andrew Luck is going to have plenty of time to work off his rust.

Redskins: C-

Someone clearly forgot to give Jay Gruden the memo that says you’re not going to win if Alex Smith has to throw the ball more than 40 times. Going into Sunday’s game, Smith was 4-15 all-time when throwing the ball 40 or more times, and it looks like we can tack another loss on to that record. Smith threw the ball 46 times in this game and not surprisingly, most of those were checkdowns to his running back, Chris Thompson. Thompson caught 12 passes, which is nice if you own him in a PPR fantasy league, but no so nice when your team is trying to win a game while playing from behind.

Kansas City 42-37 over Pittsburgh

Chiefs: A

It’s official: there is no way to stop Patrick Mahomes. The Chiefs offense steamrolled the Steelers thanks in large part to Mahomes, who threw for 326 yards and six touchdowns. Mahomes now has 10 TD passes in two games, which is now the NFL record for most TD passes through two weeks. Even Sammy Watkins got in on the action (six catches, 100 yards), which is how you know the Chiefs’ offense was rolling.

Steelers: C-

If the Steelers have Le’Veon Bell on speed dial, they might want to go ahead and give him a call this week. Although the Steelers struggled in nearly every aspect of their game on Sunday, their rushing attack definitely hit rock bottom. The Steelers totaled just 33 yards on 13 carries (2.5 ypc). It wasn’t surprising to see them throwing the ball so often after falling behind 21-0, but it was surprising to see the ground game completely disappear in the second half when things were tied (the Steelers totaled just 19 rushing yards in the second half). At 0-1-1, the Steelers are winless after two weeks for just the second time in Ben Roethlisberger‘s 15-year career.

Chargers: B+

When you’re missing your best defensive player, that can sometimes be a problem, but not when you’re playing Buffalo. Even without Joey Bosa on the field, the Chargers defense still dominated the Bills in this game. Bills quarterback Josh Allen is probably going to have nightmares about the Chargers after getting sacked five times. Offensively, Austin Ekeler had a coming-out party for the Chargers, rushing for 77 yards on just 11 carries. Ekeler is now averaging an absurd 7.25 yards per carry on the season.

Bills: D

The Bills went three-and-out on their first two drives, and somehow, things only got worse from there. As a matter of fact, things are so bad in Buffalo right now that players are quitting the team and retiring at halftime.

Lorenzo Alexander says he was told at start of second half that Vontae Davis quit and retired.

The one bright spot in this game for Buffalo was Josh Allen. Although he wasn’t great (18 of 33, 245 yards, two interceptions and one garbage time TD), he was a giant step up from Nathan Peterman, who registered a 0.0 QB rating in Week 1.

Dolphins: B

If you want to make a rookie quarterback struggle, you need to put pressure on him, and that’s exactly what the Dolphins did in this game to the tune of three sacks. After only giving up 13 points in Week 1 to the Titans, the Dolphins defense is suddenly looking like one of the early surprises in the NFL. Another surprise? Ryan Tannehill is unbeatable. Tannehill isn’t flashy, but he rarely makes mistakes and lately, he almost always wins. Dating back to 2016, Tannehill is 9-1 in his past 10 starts.

Jets: C

This game might haunt the Jets for awhile, and that’s because they were basically giving away points to the Dolphins. The Jets turned the ball over twice in the first half, which led to two Miami touchdowns. An interception by Sam Darnold and a lost fumble by Robby Anderson put the Jets in an early 14-0 hole. When you have a rookie quarterback making his first home start, digging yourself an early hole doesn’t help. It also doesn’t help things when that rookie gets zero help on the ground; the Jets rushed for just 42 yards on 19 carries.

Tampa Bay 27-21 over Philadelphia

Eagles: C

The Eagles gave up a 75-yard touchdown pass on the first play from scrimmage, and things only got worse from there. The Eagles’ struggling offense couldn’t keep up with the high-flying Buccaneers, and it didn’t help that it lost two key players to injury early in the game (Jay Ajayi, Jason Peters). Although Ajayi did return, the Eagles’ ground game didn’t. Philly totaled just 91 yards on the ground and Nick Foles was forced to throw the ball 48 times, the third highest total of his career.

Buccaneers: A+

The Buccaneers might be one week away from a bona fide quarterback controversy after what Ryan Fitzpatrick did against the Eagles. One week after shredding the Saints defense, Fitzmagic did the exact same thing to the defending Super Bowl champions with 402 passing yards and four touchdowns.

With that showing, Fitzpatrick became the first quarterback in Bucs history to throw for four TDs in consecutive games. With Jameis Winston returning from his suspension after Week 3, Bucs coach Dirk Koetter is going to have an interesting decision to make. If he DeSean Jackson gets to have a say in who the starter should be, there’s probably a good chance he would vote for Fitzpatrick. After putting up 129 receiving yards and a touchdown against Philly, Jackson now has five receiving touchdowns from Fitzpatrick during his time in Tampa and just one from Winston.

Cardinals: F

It’s too bad there’s not a grade lower than “F,” because that’s what the Cardinals actually deserve. Through two weeks, the Cardinals have been outscored 58-6 and they arguably look like the worst team in the NFL. The 137 total yards was the Cards’ lowest output since 2010, when they put up 134.

Rams: A+

The Rams wanted Brandin Cooks so badly this offseason they were willing to trade a first-round pick for him, and now we know why. Cooks caught seven passes for 159 yards as the Rams had their way with Arizona. The only thing more impressive than Cooks’ performance was the three touchdowns the Rams got from Todd Gurley. And the only thing more impressive than both of those things was the Rams’ defensive performance. L.A. pulled off just its second shutout since 2015 and held the Cardinals to just 137 yards of offense.

San Francisco 30-27 over Detroit

Lions: B-

The Lions had to fly out to the West Coast after playing a Monday night game in Week 1 and it definitely showed as the sputtered out to a slow start on offense. The Lions offense didn’t really get moving until the fourth quarter, but by then it was too little, too late with the Lions trailing 30-13. Matthew Stafford finished 34 of 53 for 347 yards and three touchdowns, but as is almost always the case in Detroit, he can’t do it himself. The Lions are now 1-12 all-time when Stafford throws 50 or more passes in a game.

49ers: B+

The 49ers were handing out Jimmy Garoppolo‘s bobblehead before Sunday’s game, but maybe they should have been giving out Matt Breida‘s, because the running back stole the show in San Francisco’s win. Breida carried the ball for 11 times for 138 yards and a touchdown. It’s a good thing the 49ers were able to run the ball, because Garoppolo might have been killed if he had to throw it anymore than he did. Garoppolo got sacked six times on just 26 pass attempts.

Denver 20-19 over Oakland

Raiders: B

After basically blaming Oakland’s Week 1 loss on Derek Carr, Jon Gruden is going to have to find someone else to blame for this one. The Raiders led for most of the game thanks in large part to nearly perfect performance from Carr, who finished 29 of 32 for 288 yards. Gruden’s biggest issue last week was that Carr wasn’t getting the ball to Amari Cooper. Well, he fixed that too, as Cooper caught 10 passes for 116 yards. On the other hand, if Gruden does want to blame Carr for the loss, it’ll still be possible. One of Carr’s three incompletions came on a pivotal fourth-and-1 in the fourth quarter. Gruden could also blame his special teams; the one point difference here came because the Raiders had an extra point blocked after a second quarter touchdown.

Broncos: B+

Although there were plenty of kicker meltdowns across the NFL on Sunday, the Broncos didn’t have to deal with one in Denver. Brandon McManus was perfect for the Broncos, going 2 for 2 on both field goals and extra points. McManus’ biggest kick came on a 36-yard field goal that put the Broncos ahead with just six seconds left. The Broncos also got a huge performance from rookie Phillip Lindsay. The undrafted running back topped his 71-yard performance last week by rushing for 107 yards on 14 carries against the Raiders.

Jacksonville 31-20 over New England

Patriots: C-

If Bill Belichick was handing out the grades here, he’d probably give an ‘F’ to his defense, which surrendered 481 yards of total offense. This game marked the first time since 2012 that the Patriots have surrendered more than 480 yards on the road. The Patriots had no answer for Jags receiver Keelan Cole, who caught seven passes for 116 yards and a touchdown. Even worse for New England is the fact that their defense got torched in a game where one Jacksonville’s biggest stars (Leonard Fournette) was sitting on the bench with an injury.

Jaguars: A

Jaguars fans were probably having flashbacks to the AFC Championship game when Jacksonville took a 24-10 lead into the fourth quarter on Sunday, but unlike January, the Jags didn’t blow it this time thanks to Blake Bortles. The Jaguars quarterback threw for 377 yards and four touchdowns and arguable outplayed Tom Brady. One big reason the Jags were able to pull off the upset is because they converted 10 of 14 on third down, which kept Brady and the Patriots offense off the field.

Dallas 20-13 over New York Giants

Giants: D+

Congratulations to anyone who didn’t fall asleep while watching the Giants offense on Sunday night. After struggling on offense for most of the 2017 season, it doesn’t look like things have changed under Pat Shurmur. The Giants didn’t cross midfield a single time during the first half against the Cowboys, and their only touchdown came in garbage time. The only thing that kept the Giants offense from being a total failure in Dallas was the play of Saquon Barkley, who had 25 touches for 108 yards. The Giants have now scored 20 or fewer points in 10 of their past 12 games.

Cowboys: B+

The Cowboys offense is still a work in progress, but they can afford to go through a few growing pains when the defense dominates like they did against the Giants. As a matter of fact, it’s hard to say what was more impressive: the way the Cowboys suffocated the Giants running game (held them to 35 yards), or the way they smothered Eli Manning (sacked him six times). The six sacks marked just the second time since 2014 that Dallas has racked up six sacks in a game. The Cowboys got one huge highlight play from their offense in the form of a 64-yard touchdown pass from Dak Prescott to Tavon Austin.