ANN ARBOR, Mich. -- Denard Robinson was spectacular, accounting for 426 yards of offense and four touchdowns.
It almost wasn't good enough to help No. 19 Michigan avoid an upset against Air Force.
Robinson ran for 218 yards and two touchdowns, threw for 208 and two scores as the Wolverines held off the Falcons for a 31-25 win Saturday.
"It's always good to win," Michigan coach Brady Hoke said. "Sometimes they're not very pretty, and this would be one."
Robinson became the first player in major college football since at least 1996 to have at least 200 yards rushing and 200 passing in three games, according to STATS LLC. Former Texas star Vince Young was the only other player to pull off the feat twice.
The speedy senior, who joked last month that he could beat Usain Bolt in a 40-yard dash, scored on a 79-yard run on his second snap and ran for a 58-yard score on the first play of the second half.
"I don't want to sound cocky, but when I get in front on a big run, I don't think anyone is going to catch me," Robinson said.
The Wolverines (1-1) were humbled in their opener, losing 41-14 to Alabama in a game that might've been more lopsided that the score indicated. They did bounce back, but had a tough time beating the Falcons (1-1) in a game they were favored to win by three touchdowns.
Cody Getz's third TD and a 2-point conversion pulled Air Force within three early in the fourth quarter.
The Falcons had one last shot to snap their 19-game losing streak against teams in The Associated Press Top 25, but turned the ball over on downs with 1:28 left at their 35 when Jake Ryan batted down a pass.
Ryan wore No. 47 with a Michigan Legends patch, honoring Bennie Oosterbaan, whose number was previously retired by college football's winningest team.
"He was a great athlete, he was a three-time All-American and he was definitely a Michigan Man," said Ryan, who had a game-high and career-high 11 tackles. "I want to honor all of that. I know he made a lot of great defensive plays, and I got a chance to make a few at the end."
Robinson, who played poorly and got beat up by the defending champion Crimson Tide, was asked to run early and often and did it well.
He had his fourth game with at least 200 yards rushing and trails only Mike Hart's school record by one. His 426 yards of total offense ranked fifth in school history, trailing four of his own performances.
Robinson also showed he could make plays through the air.
He was 14 of 25 for 208 yards with two TDs, connecting with freshman tight end Devin Funchess on a 30-yard pass in the second quarter and former quarterback Devin Gardner on a 7-yard toss to put Michigan ahead 28-17 in the third quarter. Gardner caught five passes for 63 yards and a TD. Funchess, playing for the injured Brandon Moore, had 106 yards receiving and a score on four receptions.
Robinson also threw an interception, a high pass that went off Vincent Smith's hands.
The Wolverines responded just well enough to prevent a collapse after Getz made it 28-25 and silenced most of the 112,522 fans at the Big House.
Michigan kicked a field goal and stopped Getz's fourth-down run on the next two possessions, but Robinson threw short of Gardner on a third down -- a play that was ruled a catch before video review overturned it. The Wolverines defense didn't let Air Force drive for the go-ahead TD after having a lot of problems with its option attack, especially on pitches to the outside.
Defensive end Frank Clark had a lot to do with helping the Wolverines seal the victory. On Air Force's last first down, Clark deflected a pass and he stopped quarterback Connor Dietz for a 1-yard loss on its final third down.
"Frank was active," Hoke said. "Frank was disruptive, especially at the end of the game."
After suspending him for one game, Hoke allowed Clark to play just days before he faces a charge of stealing a laptop from a dorm room.
Hoke also reinstated back Fitzgerald Toussaint after making him miss the opener because he pleaded guilty to drunken driving. Toussaint struggled, running for just 8 yards on seven carries, but Hoke said it wasn't the running back's fault.
"I don't think he got a chance to get started because we didn't block enough," Hoke said.
Air Force blocked Michigan's bigger players just fine, knocking defensive linemen off the ball, sealing linebackers and keeping rushers away from its QB.
Dietz was 10 of 19 for 127 yards and ran for 61 of his team's 290 yards rushing. Getz had 130 yards rushing after running for 218 yards and three scores in last week's 49-21 win over Idaho State.
Falcons coach Troy Calhoun, who has led the service academy to a program-record five straight bowls, did not make himself or his players available for interviews after the game.