Week 8 in the NFL season wasn't full of upsets like last week, but there were plenty of close games in the fourth quarter. 12 of 14 games (85.7%) have been within one score (eight points) in the fourth quarter, with seven games having been decided by one score. 

Three teams -- the Carolina Panthers, New York Jets, and Seattle Seahawks -- had game-winning scores in the final two minutes of regulation or overtime. Seattle took over first place in the NFC West with its win. 

The Philadelphia Eagles have the best record in the NFC at 7-1, while the AFC has plenty of competition at the top with the Kansas City Chiefs, Baltimore Ravens, Miami Dolphins, and Jacksonville Jaguars at 6-2. Week 8 caused even more unpredictability in a "week-to-week" league, so here's what we learned: 

Arizona Cardinals

Trey McBride is emerging as a playmaker: Another strong performance from McBride, as he finished with 10 catches for 95 yards and a touchdown in the loss to Baltimore. McBride was targeted 14 times Sunday, and has 25 targets in the last three games. McBride has 60-plus receiving yards in two of the last three games, having 17 catches for 186 yards and a touchdown. He's becoming a reliable target for Josh Dobbs of late, and potentially for Kyler Murray as well if he returns. 

Atlanta Falcons

Taylor Heinicke turned in the typical backup QB performance: Thanks to Desmond Ridder's concussion, Heinicke had the opportunity to show the Falcons what he could do. Naturally, the backup quarterback sparked the offense by going 12 of 21 for 175 yards and a touchdown (100.3 rating), leading the Falcons to 20 points in the second half (they had three at halftime with Ridder). The Falcons scored on four of six possessions in the second half, compared to just one on seven in the first half. Perhaps Heinicke should get a start going forward, but there is a potential quarterback controversy in Atlanta. 

Baltimore Ravens

Best combination of red zone offense and defense in football: The Ravens are one of the best teams in the NFL because of their top-10 offense pairing well with their top-2 defense, yet their red zone offense and defense is elite. Baltimore is third in the NFL in red zone offense (67.6%) and third in red zone defense (35.0%). Sunday's game didn't back the defense in that stat (Cardinals were 3 of 3 in red zone), but the offense was 4 of 4 (3 of 3 in goal to go situations). The red zone situations balance out, but no team appears to be as balanced there as Baltimore. 

Buffalo Bills

The ball was spread around in the passing game: Perhaps the Bills do listen to pundits that Stefon Diggs gets the ball too much. Diggs had 12 targets in Thursday's win over the Buccaneers, but he did not receive the lion's share of those targets from Josh Allen. Khalil Shakir was targeted six times, but had six catches for 92 yards. Dalton Kincaid had seven targets (five catches for 65 yards and a touchdown) while Gabe Davis matched Diggs with 12 targets (nine catches for 87 yards and a touchdown). Ken Dorsey made an effort to not force-feed Diggs on a short week and it worked as Josh Allen completed 77.5% of his passes and threw for over 300 yards. 

Carolina Panthers

Thomas Brown gets most out of Bryce Young: The Panthers have a new play caller in offensive coordinator Thomas Brown coming out of a bye week. After Young and the offense struggled to an 0-6 start, what could changing play callers hurt? Young was solid in getting Carolina's first win, going 22 of 31 for 235 yards with one touchdown (103.6 rating). Even more impressive was Carolina had just 244 yards of offense and 44 rushing yards, so Young basically carried the offense to a win. There's a lot of work to do, but the Panthers are in the win column because of Young. 

Chicago Bears

Win streaks elude this team: The Bears have not won two games in a row under Matt Eberflus, which is something to consider when pondering his future (if he has one in Chicago after this year). Winning two of three is supposed to spark Chicago, but the Bears turned in a performance with just 13 points and 295 yards of offense -- 124 of which came when the game was well out of hand. What can anyone expect with an undrafted quarterback form Shepard leading a pass offense that ranks 26th in the NFL. Regardless, the game preparation on both sides of the ball were bad Sunday, which reflects Eberflus. 

Cincinnati Bengals

Run game turns in best performance of year: Perhaps the Bengals run game is back, especially after rushing for a season-high 134 yards in Sunday's win over the 49ers. This was the first time the Bengals rushed for over 100 yards all season! Joe Burrow being fully healed from his calf injury has a lot to do with it, as he rushed for 43 yards and averaged 7.0 yards per carry. Joe Mixon averaged 5.4 yards per carry as well in getting 87 yards and a score. The Bengals averaged 69.8 rushing yards per game heading into Sunday. They nearly doubled that. 

Cleveland Browns

Turnovers are preventing victories: The Browns entered Sunday's game against the Seahawks 29th in turnover differential (-6) and their 14 takeaways were the second-most in the league. Add three more turnovers on the season as PJ Walker threw two interceptions and lost a fumble. Again, Walker is a backup quarterback but this is a problem as Deshaun Watson's shoulder injury remains a mystery. Cleveland was minus-1 (-1) in turnover ratio in Sunday's loss and its 17 turnovers lead the league. Walker's late interception actually led to Seattle's game-winning touchdown. The Browns defense keeps them over .500, since the offense gives the ball away way too much. 

Dallas Cowboys

The offense is finally getting CeeDee Lamb going: Lamb hasn't been nonexistent to start the year, but the Cowboys offense is finally starting to make him the focal point. He was targeted a season-high 14 times in Sunday's win, having 12 catches for 158 yards and two touchdowns -- all season-highs as well. Over the last two games, Lamb has 19 catches for 275 yards and two touchdowns on 21 targets (14.5 yards per catch). Dallas can score points in bunches, but the best way for this team to have a consistent offense is to go through Lamb. 

Denver Broncos

Defense has turned a corner: The Broncos were ranked 31st in points per game allowed and 32nd in yards per game allowed heading into Week 8. They still have one of the worst defenses in the league, but the unit has allowed just 15.0 points per game and 331.6 yards per game over the last three games. The points per game allowed is tied for third in the NFL over that span and the yards per game allowed is 16th -- still tremendous improvements from the start of the year. They also have seven takeaways over the last three games, including five on Sunday. Denver is the first team to beat Kansas City by five-plus points, snapping a 40-game streak without losing by that much. The Broncos all of a sudden look like a competent football team. 

Detroit Lions

They can run without David Montgomery: Give credit to Jahmyr Gibbs and Craig Reynolds, who were the cogs behind Detroit rushing for 222 yards in Monday's win over Las Vegas. Gibbs had 26 carries for 152 yards as the featured back, while Reynolds added 14 carries for 74 yards. The pair averaged 5.7 yards per carry, running behind one of the best offensive lines in the league. Not having Montgomery did affect the Lions in the red zone (1 of 5), yet Detroit was able to hold the ball for 39:33 thanks to the running backs. The Lions have three good running backs in this offense. 

Green Bay Packers

Not getting enough from the running game: The Packers got the fifth straight game with an interception from Jordan Love and another slow start on offense. The running game didn't help much, as Aaron Jones and A.J. Dillon had 13 carries for 40 yards in the loss -- averaging 3.1 yards per carry. This was a setback for the Packers running the ball, as they did average 123.5 yards per game over the last two games. Green Bay is 25th in rushing and struggling to move the ball on the ground, as Love is mired in a massive slump in his first year as a starter. Having a stronger run game would help, but that may not be the case this year for Green Bay. 

Houston Texans

Pass rush took advantage of poor offensive line: Carolina's offensive line has been overmatched most of this year, and Houston took advantage. The Texans had six sacks and 21 pressures in Sunday's loss, this after coming into the game with just nine sacks and 79 pressures. Houston has eight sacks and 46 pressures in its last two games, as the pass rush has come alive. Jonathan Greenard has significantly benefitted with three sacks and 12 pressures over the last two games. 

Indianapolis Colts

Jonathan Taylor getting one carry in second half is unacceptable: Taylor had 12 carries for 95 yards to lead the Colts in rushing, on an afternoon when Indianapolis rushed for 164 yards. 11 of those carries were in the first half, as Taylor finished with one carry in the second half -- in a game when the Colts trailed by one at halftime. Taylor averaged 7.9 yards per carry, yet had one carry for one yard in the second half of a game when the Colts were in it. Taylor has four-or-less carries in the second half in three of his four games, something Shane Steichen may have to answer to. 

Jacksonville Jaguars

Evan Engram is slowly starting to get going: While Engram still doesn't have a touchdown yet this seaosn, the Jaguars made sure he was featured in Sunday's win. Engram was targeted a season-high 10 times -- and caught all 10 passes for 88 yards (also a season-high). Engram has been steady this season, but Jacksonville hasn't featured him in the offense much with the pass-catching depth. Perhaps that changes now as Engram has caught 22 of 24 targets over the last three games, a reliable security blanket for Trevor Lawrence

Kansas City Chiefs

Running the ball may be the key to beating them: Russell Wilson only threw 19 passes in Sunday's win over Kansas City, because Denver ran the ball 40 times and gained 153 yards -- the most the Chiefs have given up this season. Kansas City has allowed 135.7 rushing yards per game over the last three games and actually is 26th in the league in yards per carry allowed (4.4). The Chiefs defense as a whole is great, but the unit has allowed the most rushing yards in a game this season over the last two weeks. The good running teams are certainly taking notice. 

Las Vegas Raiders

Davante Adams is lost: The Raiders just can't connect with Adams on offense, as he had just one catch for 11 yards on seven targets. Adams has just 14 catches for 142 yards and no touchdowns in his last four games, his fewest receiving yards in a four-game span since 2015. Monday was his worst receiving percentage in a career (14.3%) and Raiders quarterbacks are 1 of 12 targeting him 20-plus yards downfield. Adams is in a slump and the Raiders offense isn't helping with the poor quarterback play. He needs a change of scenery. 

Los Angeles Chargers

Austin Ekeler finally is effective as a receiver: A high ankle sprain has certainly limited Ekeler this season, especially as a versatile receiver out of the backfield. Not only has Ekeler missed three games, but he had just five catches for 40 yards in the two games since his return. The Chargers got Ekeler involve din the passing game in Sunday's win over the Bears, as Ekeler finished with seven catches for 94 yards and a touchdown -- finishing with 123 scrimmage yards. Ekeler doesn't appear fully back yet (only 395 yards from scrimmage in four games), but making plays in the passing game will definitely help the Chargers offense going forward. 

Los Angeles Rams

Aaron Donald still got it: Donald showed flashes of his defensive player of the year self in Sunday's loss to the Cowboys, having two of the Rams' three sacks. He also had two quarterback hits and three pressures, which is actually his lowest pressure total over the last three games (Donald had seven pressures and five pressures in each of the last two games). Donald has 38 pressures (top-10 in NFL) and 4.5 sacks this season and 12 quarterback hits in eight games. This isn't the dominant Aaron Donald the league is used to seeing, but he's still one of the top pass rushing defensive tackles when he's on the field. 

Miami Dolphins

Raheem Mostert is starting to slow down a bit: The Dolphins have faced two top-10 run defenses over the last two weeks, which may be why they have only averaged 61.5 rushing yards per game over that span. The player most affected is Mostert, who has 22 carries for 91 yards and a touchdown in that stretch (4.1 yards per carry). Mostert still leads the NFL with 10 rushing touchdowns, yet the 31-year-old may have some tread on his tires. The Dolphins need De'Von Achane to get healthy and get Jeff Wilson back up to speed (had five carries for 23 yards in his second game back). 

Minnesota Vikings

Season is over with Kirk Cousins done for year: Stinks for Cousins and the Vikings that the franchise quarterback ruptured his Achilles. Cousins was having a tremendous year, throwing for 2,331 yards with 18 touchdowns to just five interceptions with a 103.8 passer rating (third in NFL). With Cousins out, fifth-round rookie Jaren Hall went 3 of 4 for 28 yards in his three possessions, resulting in a fumble, punt, and end of the game. The Vikings are 4-4, but they need Cousins to get them to the playoffs. They'll get to see what they have in Hall, but it's way too much to ask to ask him to win games. 

New England Patriots

Offensive woes affecting Rhamondre Stevenson: This season hasn't been kind to Stevenson, who struggled again on Sunday with 10 carries for 39 yards. Stevenson hasn't rushed for over 50 yards in any game since Week 3 and has a season-high of just 59 on the season. He has just 307 yards and two touchdowns, while averaging 3.2 yards per carry. The Patriots don't get much out of their running game to begin with (27th in NFL), but that can be attributed to their struggling offense as a hole. Stevenson needs to be better, yet the Patriots have to give him carries to get him going too. 

New Orleans Saints

The annual Taysom Hill game: Hill was a huge catalyst toward the Saints putting up a season-high 38 points and 511 yards, throwing for 44 yards and having nine carries for 63 yards and two touchdowns in the win. Hill led the Saints in rushing and averaged 7.0 yards per carry on a day when the Saints had 161 rushing yards. Hill had just nine carries in the last three games prior to Sunday, so perhaps he's the spark the offense needs to really get going under Derek Carr

New York Giants

They were right to pay Saquon Barkley: If it wasn't for Barkley, the Giants offense would be in even worse shape than it is now. Quite frankly, the Giants need Barkley to even put points on the board. New York had 194 yards of offense in Sunday's loss to the Jets and Barkley had 128 of them -- having 36 carries to even get those yards (3.6 yards per carry). Barkley carried an nonexistent offense on his back, an offense that had -9 passing yards (lowest for any team since 2000). The Giants are averaging 147 rush yards per game since Barkley returned compared to 75.3 when he's out. There's a reason why they paid them, because they had to. 

New York Jets

Punter the unsung hero: Not many times a punter is talked about, but Thomas Morstead deserves a shoutout. Field position played a massive role in Sunday's win over the Giants, as Morstead had to punt 11 times for 529 yards -- but three were downed inside the 5-yard line. Morstead averaged 48.1 yards on his 11 punts, four of which landed inside the 20. The Giants have issues scoring points to begin with, but Morstead and the punt team made it that much more difficult. 

Philadelphia Eagles

Jalen Hurts continues to shine in pocket: Don't tell Hurts he's playing with a bone bruise in his knee. While the run game has been taken away form Hurts, he's been excellent in the pocket over the last two games. Hurts is 46 of 60 (76.7%) for 507 yards with six touchdowns and one interception for a 127.6 rating from inside the pocket, backing up his presence from the pocket over the last two seasons. Hurts is first in completion percentage (72.7%) and second in passer rating (107.1) from the pocket over that stretch. Force Hurts to throw and he'll beat a defense.  

Pittsburgh Steelers

The offense is worse than last year: Seven games in and the Steelers offense somehow got worse. The offensive points per game are down from 14.3 to 13.9 and the yards are down from 298.6 to 271.7. Mitchell Trubisky showed he isn't any better at quarterback than Kenny Pickett is and the run game was even worse than usual in Sunday's loss, as Jaylen Warren and Najee Harris combined for 12 carries for 32 yards -- 2.7 yards per carry. The Steelers have to make some changes on this unit soon, even though they are over. 500. 

San Francisco 49ers

Run defense has been a major weakness: Sure Brock Purdy has been subpar during the three-game losing streak, but the run defense has been relatively ignored. They allowed over 130 rushing yards in two of the last three games, as their 122.7 rushing yards per game allowed during that stretch is 24th in the NFL. Cincinnati had 134 rushing yards and averaged 5.0 yards per carry, a team that averaged 69.8 rushing yards coming into the contest. Poor run defense haunted the 49ers this past Sunday in what's becoming a trend. 

Seattle Seahawks

They got playmaking rookie wideouts: Jaxon Smith-Njigba and Jake Bobo turned some heads in the preseason, and the pair are starting to make plays in the regular season. The first pair of rookies to catch a touchdown in the same game for the franchise last week, Smith-Njigba and Bobo both scored again this week. Smith-Njigba caught the winning touchdown pass with 38 seconds left to put Seattle in first place in the NFC West. The rookie wideouts are excellent third and fourth options in the passing game with potential for more targets down the road. Seattle has a very deep wide receiver core thanks to them. 

Tampa Bay Buccaneers

First quarter offense is dreadful: The Buccaneers are one of the worst first quarter teams in the league, and that continued on Thursday as they failed to score in the first quarter again. The Buccaneers average 1.9 points per game in the first quarter, tied for 29th in the NFL. Baker Mayfield is partly responsible for those slow starts, completing 56.7% of his passes with one touchdown and an interception for a 69.8 passer rating in the opening 15 minutes. Slow starts are really hurting the Buccaneers. 

Tennessee Titans

Will Levis is QB1: There shouldn't be a debate on the starting quarterback in Tennessee after how Levis performed in his first start. Levis finished 19 of 29 for 238 yards and four touchdowns in Tennessee's win over Atlanta. He connected with DeAndre Hopkins on three touchdowns, helping the veteran WR find the fountain of youth. Levis freed up Derrick Henry to rush for 101 yards as Tennessee put up 375 yards of offense. He's the third player in NFL history with four passing touchdowns in his NFL debut (Marcus Mariota and Fran Tarkenton are the others). The Titans put up a season high in total yards, passing yards, and points -- and they won. Levis should start the rest of the year. 

Washington Commanders

Situational football hurt late in loss: An excellent game plan by the Commanders was thwarted by some fourth quarter miscues that added up. Sam Howell threw a crucial fourth-quarter interception in his own territory in a tie game that helped the Eagles take the lead, Terry McLaurin dropped a fourth down catch that would have extended the drive in a one possession game, and the offensive line allowed their first sack on fourth down late when the score. The miscues were just too much for Washington.