Teams were eliminated from playoff contention in both conferences, but the remaining races became tighter than ever thanks to some surprising results and unexpected performances on Sunday.
We also learned a few things about the teams that aren't headed to the playoffs. Is Kirk Cousins ready for the big time? Can the Vikings win without Adrian Peterson? Will Dallas ever stop beating itself? Takeaways has a look back at Sunday's lessons.
Atlanta Falcons 27, Washington Redskins 26
- Atlanta's season has been long over, but the team's win over Washington highlighted exactly how much the Falcons need Tony Gonzalez. He is planning to retire at the end of the season, and the importance of finding a reliable pass-catching tight end that Matt Ryan can lean on is clear. Much is made of how good Roddy White and Julio Jones are, but having a slot tight end is Ryan's safety blanket and needs to be the first point of order in the offseason -- even before fixing the defense.
- Was Kirk Cousins spectacular on Sunday? No. Did he do enough to raise a lot of questions? Yes. Fair or unfair, it's hard to argue against Cousins putting forth one of the best passing games the Redskins have seen in 2013. The second-year quarterback is entering the season at a time when he'll face three poor defenses, but throwing vertically was something that had been absent in 2013. A loss is a loss, but it will be interesting to see this situation develop.
Chicago Bears 38, Cleveland Browns 31
- Switching back to Jay Cutler was a bold move by head coach Marc Trestman, and it was almost a disaster. Two first-half interceptions, including a pick-six, made it feel like the game was over before it really began. Cutler settled and found his rhythm in the second half, but the game was entirely too difficult against a four-win Cleveland team. It's easy to justify the return to Cutler as long as the Bears are winning, but it's unclear what happens if he struggles again.
- The Browns gave it their best shot, but this team has reached the ceiling of its talent potential. Jason Campbell and Josh Gordon can still surprise teams, but Cleveland's deficiencies rang true on an afternoon the second-year receiver didn't get 100 yards. Inconsistent running and defense will be the Browns' Achilles heel until they're built further, and that will take time.
Indianapolis Colts 25, Houston Texans 3
- Trent Richardson had his most successful game in Indianapolis, for what it's worth. It took 19 carries for Richardson to gain 64 yards, highlighting the huge problem the Colts have running the ball. Andrew Luck is talented enough that he'll get his receivers through regular season games, but the lack of ball control is astonishing. This will cause major problems for Chuck Pagano's team in the playoffs when it faces teams capable of converting short third downs.
- The silver lining for Houston is that it had time to determine Case Keenum wasn't a long-term option. It took a few weeks for NFL defenses to adjust to Keenum's style, but when they did the problems became evident. He's not a naturally gifted deep passer and he's not accurate enough in the short range. A new head coach and quarterback await the Texans, and that's something to look forward to.
Buffalo Bills 27, Jacksonville Jaguars 20
- E.J. Manuel settled down to have one of this best games, but more encouraging for the Bills is how the team played a complete offensive game in a win. Buffalo only threw for 193 yards, but when paired with 198 yards rushing, it was too much for the Jaguars defense to stop. There are a lot of pieces that still need to be added on offense, but the nucleus is there.
- Jacksonville has plenty to be excited about, too. Let's not mince words: The Jaguars lost because of Chad Henne. There have been up-and-down moments this season, but it's clear Henne isn't a long-term option at quarterback. His two interceptions derailed critical drives, but head coach Gus Bradley should focus on the excellent play of Jordan Todman, who could be the future at running back.
Miami Dolphins 24, New England Patriots 20
- It might have only been one game, but Ryan Tannehill's dominance over Tom Brady is wholly significant. I'll spare you labored "passing of the torch" cliches, but it was a sign that the second-year quarterback had taken the next step for the Dolphins. Tannehill was almost perfect on Sunday, throwing for 312 yards and three touchdowns. It was a huge game to keep the team's playoff hopes alive, and it gives the organization renewed effort to move forward with its franchise quarterback.
- Brady was curt in his postgame press conference, and rightfully so. The Patriots got 100+ yards each out of Julian Edelman and Danny Amendola, but the team still lost. It's a lesson in life after Gronkowski, with New England lacking reliable targets in the red zone to make Brady's life easier. The Patriots will coast into the playoffs without trouble, but it's unclear how they'll win without a more reliable threat.
Minnesota Vikings 48, Philadelphia Eagles 30
- The Vikings are a strange team to work out. They're eliminated from playoff contention and on the verge of rebuilding, so it's clear the Vikings aren't "good" in a traditional way, but the organization deserves a lot of credit for finding ways to play games close and having an inherent gift for spoiling other teams' hopes. It's a moral victory, and those are important. Young players are stepping up and could earn more reps in 2014, while the team is learning how to win.
- Philadelphia was bailed out by the Cowboys' meltdown. Chip Kelly's high-powered offense was able to outgain the Vikings, but it just couldn't convert enough points.
- LeSean McCoy is vital to everything the Eagles do on offense, and when he stalls the offense dries up completely. The problem on Sunday was a case of Philadelphia getting behind on points early and needing to throw back into the game, which took the focus away from McCoy. The Eagles can't win games this way.
Seattle Seahawks 23, New York Giants 0
- Russell Wilson has his team loose, confident and looking ahead to the Super Bowl. He wasn't perfect through the air on Sunday, but he didn't need to be, which is what makes this team so special. When one player falters, there's an intricately woven safety net that finds a way for another player to pick up the slack. This flipped when Marshawn Lynch was struggling to run the ball, so Wilson picked it up in that area. Combine these offensive principles with an elite defense and the Seahawks are going to be a juggernaut at home in the playoffs.
- There's not much more to say about Eli Manning's 2013 season. Against Seattle, he completed three total passes to Victor Cruz and Hakeem Nicks, and five passes to Seahawks defenders. The buck is being passed a whole lot in New York, but it's on Manning. He is struggling, forcing passes and trying to will plays into existence -- this is why he's throwing so many interceptions.
San Francisco 49ers 33, Tampa Bay Buccaneers 14
- Colin Kaepernick has taken huge steps forward in recent weeks, and it's no surprise his return to form coincides with Michael Crabtree rejoining the lineup. Kaepernick doesn't need an elite receiver to bail him out, he just needed a host of weapons to open up the field. He's running better now, and everything is clicking. Now the 49ers need to improve their pass rush to prepare for the playoffs.
- The Buccaneers had an impressive run, but it was a matter of time before rookie quarterback play and unpredictable running caught up with them. Mike Glennon had the kind of game rookie passers tend to have now and then, but the difference was a secondary that couldn't cover San Francisco's receivers, paired with a poor game from Bobby Rainey.
Carolina Panthers 30, New York Jets 20
- The Panthers got the win they needed, and now their Super Bowl takes place in Week 16. A win over the New Orleans Saints would give Carolina control of the NFC South, while a loss would seriously threaten their playoff chances with a Cardinals win. It's going to be a tight race down the line, but Cam Newton is a difference-maker. He didn't have a hugely flashy game against the Jets, but he did what it took and didn't turn the ball over. That's the difference in 2013, and why it's likely Newton will be playoff-bound for the first time in his NFL career.
- It's not fair to continually harp on Geno Smith, but he's the most noticeable deficiency on the Jets roster. Playing with a host of mediocre receivers hasn't made his life any easier, but New York's offense lacks deep passing and a lot of that starts at the quarterback position. When Smith looked to push his throws, he became more scattershot and threw the pick-six that sealed Carolina's win.
Kansas City Chiefs 56, Oakland Raiders 31
- The box score gives Alex Smith five touchdowns passes, Jamaal Charles five total touchdowns, the defense five interceptions -- yet not a single sack. It's the inverse of Chiefs' results early in the season, which is a relief for fans wanting to know their team can finish in a variety of ways. Oakland isn't the best barometer to measure team performance, but it's not a terrible team and Kansas City proved it can put the screws to a lesser opponent.
- Matt McGloin was terrible on Sunday, which won't sit well with the Raiders coaching staff. There were slim hopes he could be a long-term option at quarterback, but his four interceptions showed (at least for this week) that he doesn't have what it takes. Oakland will have an early draft pick, and will likely dive in again in hopes of finding a franchise quarterback.
Green Bay Packers 37, Dallas Cowboys 36
- The NFC North left it all open too long. Green Bay is on the verge of getting back Aaron Rodgers, and the Packers still have a realistic chance of winning the division. Matt Flynn played very well in a reserve role, but Rodgers is a better downfield thrower who can better use the team's receivers.
- This was a gutsy and much-needed win, and now the Packers could be the most dangerous playoff team nobody is talking about. It all comes down to the next two weeks.
- It's easy to distill the entire Cowboys game down to two throws by Tony Romo, but he wasn't on the field when Flynn was allowed to complete 67 percent of his passes or throw four touchdowns. Defense has been Dallas' problem all season long, and it was once again when Green Bay gained a total of 433 yards. Romo will be blamed, because that's what happens -- but there are far greater problems on this Cowboys team than a quarterback who finished with an 80.0 passer rating.
St. Louis Rams 27, New Orleans Saints 16
- St. Louis won the battle of efficiency, and that's why it was victorious on Sunday. The Rams were outgained on offense, but managed to convert 50 percent of their third-down opportunities and sack Drew Brees four times. They were the more aggressive team, and that's something head coach Jeff Fisher can build on in 2014. He will have a high draft pick to play with, courtesy of Washington, and it will be fascinating to see how the team operates moving forward.
- The Saints have established a longstanding tradition in 2013: Dangerous at home, mediocre away. This pattern reared its head once again with Sean Payton's team struggling at the Edward Jones Dome. There's no tangible reason why New Orleans should be struggling, but it's happening -- particularly to Drew Brees. He's posting a passer rating of 122.5 in the Superdome and 87.7 on the road. With the playoffs due to head through Seattle, he'll need to improve.
Arizona Cardinals 37, Tennessee Titans 34
- The Cardinals survived an overtime scare and remain one of the NFC's most threatening teams. If they win out, there's a chance to supplant Carolina in the playoff race. Carson Palmer deserves a lot of credit for the second half of Arizona's season. He didn't have a flawless game, but not turning the ball over is all this team needs.
- The defense gave up points after biting too hard on several plays, but the Cardinals have a good mixture of veteran talent and youth that is ready for the playoffs -- if they can find a way in.
- It's astonishing to see the Tennessee Titans keep a game close despite getting just 40 yards from running back Chris Johnson. Second-year wide receiver Kendall Wright has developed a great rapport with Ryan Fitzpatrick, resulting in 150 receiving yards on Sunday. The Titans are destined for a rebuild in 2014, but they are still playing teams close and have a chance to bounce back quickly next year.
Cincinnati Bengals 20, Pittsburgh Steelers 30
- Andy Dalton got off to a slow start, completing 7 of 17 passes for 65 yards in the first half. But he shouldn't take all the blame for the Bengals falling short this week. They gained only 57 rushing yards. Cincinnati's special teams gave up a critical touchdown, and a slew of players were injured, including Jermaine Gresham and Dre Kirkpatrick. The Bengals blew a shot at the second seed in the AFC and left the door open for the Ravens. It was their fifth road loss of the season.
- The Steelers' young playmakers continued their promising season and offered reason for hope next year. Antonio Brown now has 95 receptions, 1,307 yards and eight touchdowns. He has the third-most receptions and receiving yards in the league. Rookie running back Le'Veon Bell had a tough time picking up yards on the ground against the Bengals defense, but he fit right into the workhorse role, running the ball 24 times and catching five more passes. More depth and a few fixes to an aging roster should put the Steelers back on track next season.
More from SB Nation NFL
• Debrief: Brady and the Patriots run out of luck (for now)
• Seahawks shutout costs Washington car dealer $420,000
• Takeaways: Eliminations and collapses | 2014 NFL draft order
• Mike Shanahan walks out of press conference | Tom Brady, too
• NFL Week 15 updates, highlights and GIFs | Scoreboard