WEST POINT, N.Y. — Still perfect at home, not so perfect on the field. Army coach Jeff Monken will take it — grudgingly.

Darnell Woolfolk rushed for 69 yards and two touchdowns, Calen Holt and Kelvin Hopkins Jr. each scored on short runs, and Army beat Lafayette 31-13 on a windswept Saturday.

It was the sixth straight victory for Army (8-2), which has won 12 in a row at home. Lafayette (3-7), which plays in the Championship Subdivision, fell behind early and was doomed by a blocked punt to start the second half.

"I challenged our team this week to try and play our very best football, to play the best that we can play," Monken said. "At this point in the season we really need to be doing that if we're going to accomplish the goals that we've still got out there. I don't think we did that today, but it was good enough to win. We made some plays."

Army dominated the opening half, running twice as many plays as the Leopards, outgaining them 256-63, and holding the ball for nearly 22 minutes to gain a 17-6 lead. The margin could have been greater if not for a turnover and two false start penalties in a three-play sequence with the ball inside the Lafayette 10 that forced Army to kick a field goal on the game's first drive.

"Our mentality is every game we play is the hardest game we have," Woolfolk said. "We knew that we couldn't get complacent. The talk around, 'Oh, you guys are playing an FCS team.' We just had to come out and execute, be perfect on our fundamentals. We were off and on on that.

"If we want to be the team that we want to be, we have to be perfect every drive, cap every drive off with a touchdown. Our team is capable of that. We need to meet our standards and be that team we all want to be."

The Leopards' loss was sealed after a blocked punt on the first possession of the second half. Jacob Bissell's rugby-style kick slammed off the helmet of Army's Andy Davidson and Mike Reynolds recovered for the Black Knights at the Lafayette 1 to set up Woolfolk's second TD. It was his 34th rushing touchdown, fifth all-time at Army and one more than Carlton Jones.

"It gives them an easy score," Lafayette coach John Garrett said. "It was an impactful play in the game, unfortunately in their favor."

Army racked up 313 yards rushing. The Black Knights were averaging 303.6 yards per game, second in the nation. 

The Leopards tied it late in the first, taking advantage of an Army gaffe. Lafayette generated nothing on its first possession, punting after three downs. But Reynolds fumbled the kick after it bounced once and Lafayette's Yasir Thomas recovered at the Army 23. After losing 2 yards in three plays, Jeffrey Kordenbrock kicked a 42-yard field goal.

"We just fought until the end," said Lafayette running back Mike Dunn. "We made them earn every yard."

The Black Knights scored their first touchdown early in the second. Hopkins hit a wide-open Glen Coates along the right side, and he broke a tackle and bulled his way to the Lafayette 1 for a 35-yard gain, a career best. Woolfolk scored on the next play for a 10-3 lead.

Another nice punt by Bissell pinned Army at its own 6-yard line, but Artice Hobbs got the Black Knights out of trouble quickly with a nifty 18-yard run right after a pitch from Hopkins on the first play of the drive.

The Black Knights then used the pass to strike again and put Lafayette in a deep hole. With the Leopards intent on trying to stop the run, Hopkins found a wide-open Holt for a 32-yard gain. Holt scored on an 8-yard run to the right off another pitch with 41 seconds left in the second quarter, giving Army a 17-3 lead.

Kordenbrock's 43-yard field goal as time expired gave the Leopards a boost going into the break. It was short-lived for a team that was averaging 14 points a game and found little give in the Army defense. Lafayette converted just 2 of 8 third-down tries while Army converted all but one of its 13.

Lafayette scored its lone touchdown in the fourth quarter when QB Sean O'Malley finally got untracked. He had completions on screen passes of 23 yards to CJ Amill and 10 yards to Dunn and hit Tim Payne over the middle for 19 yards to set up a 3-yard scoring toss to Will Eisler. The Leopards had four first downs on the drive and only nine for the game to 23 for Army.

"We were able to drive it fairly consistently ... out of our spread formations," Garrett said. "We just weren't able to convert on third down. It was there periodically, but they're a good defense. There were some times where we got behind on the chains against the wind, so it's hard to throw it when it's third-and-13."

In honor of Veterans Day, the Leopards had special decals on their helmets to honor the military.

Army, 5-0 at home this season, hosts unbeaten Colgate on Saturday.