Orchard Park, N.Y. — The script for the Buffalo Bills' Week 15 game against the Green Bay Packers was supposed to go something like this: Aaron Rodgers would lead an unstoppable offense into Ralph Wilson Stadium and continue on his record-setting pace. The Packers would head back to Wisconsin with a six-game winning streak, leaving the Bills' final two games as a formality on the way to their 15th straight season without the playoffs.

But the Bills flipped the script.

Rodgers not only wasn't his MVP self, he was reduced to a pedestrian final stat line of 17 of 42 for 185 yards, zero touchdowns, two interceptions and a fumble. The Bills came up with big plays on defense and special teams (a punt return for touchdown), and it was just enough to give the Bills' a 21-13 win and their first eight-win season since 2004.

» Game recap | Boxscore

Just when the Bills looked dead in the water, they were able to upend a team many consider to be a favorite for the Super Bowl. They held Rodgers to zero touchdowns and two interceptions, something no other team has done to him in his entire career. He finished with the worst quarterback rating of his career. For those counting at home, the Bills have now limited Peyton Manning and Rodgers to a combined zero touchdowns and four interceptions the last two weeks.

The Bills' offense was still less than impressive, but the defense is good enough to steal wins, and they did it again on Sunday.

1. Kyle Orton struggles

While Rodgers' struggles were somewhat unexpected, Kyle Orton's struggles weren't a surprise. Even against a Packers' defense that seemed beatable, Orton completed just 14 of his 27 passes for 158 yards, no touchdowns and one interception. His string of terrible games continues.

2. Stephon Gilmore dominates

Part of the reason the Bills were able to shutdown Rodgers was because of how effective their cornerbacks were. Stephon Gilmore in particular was outstanding, blanketing Jordy Nelson at times and making it tough for Rodgers to connect on plays down the field. Gilmore gets criticized by fans often, but he has the look of a shutdown corner on Sunday. Corey Graham wasn't too bad, either.

3. Bills run defense looks vulnerable

A week after allowing C.J. Anderson to rush for three touchdowns, the Bills allowed over 150 yards rushing on Sunday. Eddie Lacy often had huge holes to run through and piled up 108 yards from scrimmage. The Bills were able to escape with a win, but the run defense is starting to look beatable.

4. Special teams comes through

Despite kickoff specialist Jordan Gay booting a kickoff out of bounds, the Bills had an excellent day on special teams. Marcus Thigpen returned a punt for a touchdown, and Mario Williams blocked a field goal. The Bills needed to score points in unconventional ways, and that's exactly what they did Sunday.

5. Penalties still an issue

The Bills again had a tough time staying out of trouble. They were penalized 10 times a week after taking 11 penalties against the Broncos. This time, the penalties didn't come back to bite them, but it's still something Buffalo needs to get cleaned up.