Instant analysis: Michigan State 17, TCU 16

Pretty much everybody thought the Buffalo Wild Wings Bowl would be a low-scoring game, given the two outstanding defenses and the, uh, challenges facing the offenses. TCU and Michigan State lived up -- or down, depending on your point of view -- to expectations. But the finish was exciting.

The Spartans looked completely lost on offense for the first three and a half quarters, punting on each of their first eight drives. But they rode their workhorse, tailback Le'Veon Bell, and caught a big special-teams break in rallying for two late touchdowns and a 14-13 lead in the fourth quarter. The Horned Frogs answered on Jaden Oberkrom's 53-yard field goal with 2:42 left. But Michigan State won it 17-16 on a 47-yard field goal from Dan Conroy with 1:01 left.

Here's a quick review of how it all went down:

It was over when: TCU's Trevone Boykin threw an incomplete pass on fourth-and-18 in the final minute, extinguishing the Horned Frogs' chances. After scoring 13 points on its first four possessions, TCU had just a field goal in its final nine drives. Michigan State's defense limited the Horned Frogs to just 74 yards in the second half.

Game ball goes to: Michigan State's Bell. After a slow start, he carried the ball 32 times for 145 yards and a touchdown. He also threw a 29-yard pass out of the Wildcat formation to convert a key third down on the team's first scoring drive. He accounted for 174 of the Spartans' 227 total yards, which is nothing new. Bell finished the season with a nation-leading 382 carries.

Stat of the game: Michigan State had as many punts (11) as pass completions and yet won the game. Bell had one more passing yard than starting quarterback Andrew Maxwell.

Unsung hero: Speaking of punts, the Spartans' Mike Sadler was a busy man, and he did a great job. Sadler averaged 43.7 yards on his 11 punts and pinned three inside the TCU 20. He boomed a 52-yarder while backed into his own end zone in the second half. And his driving 55-yard punt inside the Horned Frogs' 5 sent returner Skye Dawson backpedaling. Dawson fumbled the punt, Michigan State recovered on the 4-yard line and Bell ran in for a go-ahead score.

What Michigan State learned: After losing five games by 13 points this season, the Spartans looked like they were headed for another heartbreak when Oberkrom hit that 53-yarder. Instead, unlike so many previous games this season, Michigan State found a way to make big plays in all three phases in the final two minutes. The bowl win doesn't erase the disappointment of a 6-6 regular season, and the offense still looked cringe-worthy most of the night. But Mark Dantonio's team has something to build on with a positive closing note. The spring storyline is already set, as there's a quarterback controversy brewing. Freshman Connor Cook, who hadn't thrown a pass since Week 2, gave the team more of a spark than Maxwell. With two minutes left and his team needing a score to win, Dantonio turned to Cook, not the junior he'd started in all 12 games this season.

What TCU learned: This was a rare off-year for Gary Patterson, whose team lost five of its final seven games. The good news is that the Horned Frogs are still extremely young and bring back just about everyone next year. Though facing Michigan State's offense probably seemed like a vacation compared to Big 12 play, TCU still showed that it has an elite-level defense. Improving on offense will be the key for next season. Quarterback Boykin made some big plays early but overthrew several receivers and was limping around late. He completed only 13 of 29 passes and threw an interception. He'll need to make great strides to compete with Casey Pachall next year, assuming a successful return for Pachall.