The Buffalo Bills aren't tanking. 

Tyrod Taylor threw for 213 yards and two touchdowns, Tre'Davious White had a key fourth quarter interception and Steven Hauschka kicked four field goals in the Bills' 26-16 win Sunday over the Denver Broncos. 

The Bills struggled to run the ball against the stingy Broncos defense, but Taylor exposed the secondary with a handful of passes downfield. He connected with Kaelin Clay for a 28-yard gain that set up Taylor's 2-yard touchdown pass to Andre Holmes. 

In the third quarter, Taylor threw a 31-yard pass to tight end Nick O'Leary on the first play of a 69-yard drive. He capped off the four-play drive with a 6-yard touchdown pass to tight end Charles Clay. 

The defense took over from there. The Bills' starting cornerbacks, White and E.J. Gaines, each had interceptions. Lorenzo Alexander, Shaq Lawson and Kyle Williams had sacks in the win. 

The Bills improve to 2-1 this season. The Broncos fall to 2-1. 

Here is the Buffalo Bills Week 3 report card: 

GRADING THE UNITS

OFFENSE 

Quarterbacks - B+

Tyrod Taylor bounced back from last week's performance to have a solid outing against a tough Broncos defense. He completed 20 of 26 passes for 213 yards and two touchdowns. He added 13 rushing yards in the win. He was efficient. He didn't make any mistakes and didn't commit any turnovers. The best throw of the day was when he rolled out to his left and connected with tight end Nick O'Leary for a 31-yard gain. That's a difficult throw for any quarterback to make, but Taylor delivered. 

Running backs - D

The Bills didn't have any success running the ball against the Broncos. As a team, the Bills had 33 carries for 75 yards. LeSean McCoy and Mike Tolbert, the Bills' running backs, had 25 combined carries for 62 yards. McCoy made up for the lack of production on the ground by catching seven passes for 48 yards. Tolbert nearly had a touchdown catch in the first half, but he dropped it as he went to the ground. 

Receivers - C

The receiving corps didn't post big numbers, but they delivered in key situations. Tight end Nick O'Leary caught a 31-yard pass on the first play of a four-play, 69-yard drive. Jordan Matthews, who had three catches for 61 yards, had a 28-yard catch on the Bills' first touchdown drive. He added a 25-yard reception on the Bills' second touchdown drive. Andre Holmes caught a 2-yard touchdown pass off a deflection. The pass was intended for rookie wide receiver Zay Jones. Charles Clay had six catches for 39 yards and a touchdown. 

Offensive line - C-

The pass blocking was above average. Taylor was sacked three times, but the line gave him enough time to make big plays in this game. The run blocking was below average for the second consecutive game. The Bills need to do a better job of getting McCoy and Tolbert space to pick up yardage. Otherwise, the Bills offense will be a one-dimensional attack. 

DEFENSE

Defensive line - A-

The Bills' front four had a great game against the Broncos' offense. Shaq Lawson and Kyle Williams had sacks and they held the Broncos rushing attack in check for most of the game. The Broncos gained 111 yards on the ground, but that includes a 32-yard run by C.J. Anderson. 

Linebackers - A

This unit had a great game, whether it was pressuring Trevor Siemian or clogging the gaps to stop the run. Preston Brown had 10 tackles (four solo) and Ramon Humber added eight tackles (six solo) in the win. Humber nearly had an interception on a great read. He was credited with a pass defensed. Lorenzo Alexander had two tackles (two solo) and a sack. 

Defensive backs - A-

Tre'Davious White had a rough first half. Emmanuel Sanders was targeted often and made big plays when lined up against the rookie cornerback. But the second half was a different story. White made three great plays on passes thrown to Sanders on one third quarter drive. White broke up the first two passes and tackled Sanders short of the first down marker on the third. The Broncos attempted a fake punt on the ensuing play, but it failed. White added an interception in the fourth quarter to help preserve the win for the Bills. 

White finished with seven tackles (six solo) and four passes defensed. His teammate, E.J. Gaines, had a similar line. Gaines had seven tackles (six solo), three passes defensed and an interception. 

Safeties Micah Hyde and Jordan Poyer had strong outings again. The secondary was a weakness for the Bills defense over the last two seasons. That hasn't been the case this year. It's a much-improved unit. 

SPECIAL TEAMS

Kicking and punting - A

Steven Hauschka converted both extra point attempts and kicked four field goals, including a key 55-yarder at the end of the first half to tie the game at 13. He had a 49-yard field goal earlier in the game and added kicks from 53 and 27 in the fourth quarter. 

Punter Colton Schmidt had five punts for 226 yards — an average of 45.2 yards per punt. He pinned the Broncos inside the 20 twice. His longest punt traveled 58 yards. 

This was a strong game for the kicking unit. Hauschka's kicks were a crucial part of the game. Without those long field goals, the Bills don't win. He came up big when it counted. 

Returns and coverage - B-

The Bills' coverage unit was solid except for 36-yard kickoff return by Cody Latimer. The Bills gave up too much in the middle of the field on that return. Latimer took advantage of the space he was given. 

The return game bounced back with Brandon Tate active. He had two kickoff returns for 41 yards and two punt returns for 20 yards. His 17-yard punt return set up one of Hauschka's field goals in the first half. 

COACHING

Grade: A-

A well-coached game by Sean McDermott's staff. There were a few questionable moments. Offensive coordinator Rick Dennison's play calling in some situations made you scratch your head, especially when the Bills were having so much success with the play action pass game. McDermott's clock management is an issue. That's likely the product of being a rookie coach. Hopefully he'll pick up some better habits as he progresses. 

OVERALL TEAM PERFORMANCE

Grade: A

When the 2017 season is over, the Bills will likely finish with a worse record than the Broncos. So to win a game like this early in the season is impressive. The defense was the difference. It's the reason the Bills are a few inches away from being 3-0 this season. The Bills have given up 37 points in three games. 

PLAYERS OF THE GAME

OFFENSETyrod Taylor. Taylor had 213 passing yards and two touchdowns. Rick Dennison's offensive scheme is a better fit for Taylor's passing tendencies. Once they open it up a little more, he's able to find guys downfield. That 31-yard pass to Nick O'Leary was one of the best throws he's ever made. 

DEFENSETre'Davious White. The rookie had a half to forget, then bounced back with a stellar second half. He had seven tackles (six solo), four passes defensed and an interception. He didn't give up much in the seocnd half, especially when it mattered most. 

NEEDS IMPROVEMENT

The offensive line. The Bills need to get its rushing attack figured out and that starts with the team's run blocking. They need more consistency, especially at the tackle positions. Cordy Glenn's injury hurts. 

STAT OF THE GAME

2. The number of takeaways for the Bills defense. Interceptions by E.J. Gaines and Tre'Davious White sealed the victory for the Bills. Two is also the number of touchdown catches Andre Holmes has this season. 

STAT OF THE GAME II

4. The number of field goals kicked by Steven Hauschka. His 55-yarder felt like a momentum-changing moment. That was a big blow for the Broncos to give up three points at the end of the first half. Hauschka added 53- and 27-yard field goals in the second half. 

NEXT GAME

The Bills (2-1) will play at 1 p.m. Sunday against the Atlanta Falcons. The game will be televised on CBS. 

Outbrain