WEST POINT, N.Y. -- Ronnie Hillman rushed for 117 yards and two touchdowns to lead San Diego State to a 23-20 win over Army on Saturday.
Ryan Lindley added 146 yards through the air for the Aztecs (2-0, 0-0 Mountain West), who secured the win on Abelardo Perez's 42-yard field goal with 9:29 left in the fourth quarter.
Trent Steelman ran for a career-high 157 yards and scored three touchdowns for Army, but the Black Knights committed eight fumbles, losing three, as they fell to 0-2.
Lindley finished 8-of-18, including a 68-yard strike to Colin Lockett just 33 seconds into the first quarter. Hillman also posted 20 receiving yards as San Diego State remained unbeatean under new coach Rocky Long.
"We won," Long said, "and we're happy as heck we did."
The game, attended by former New York City Mayor Rudy Giuliani as West Point remembered the Sept. 11, 2001, terrorist attacks, was the first matchup of the two schools, and featured a tribute to the victims and heroes at halftime.
Army cadets passed out American flags to fans before the game, and first responders were among those honored. Also, a day before the 10th anniversary of the attacks in New York and Washington, a large American flag was unfurled as part of the tribute that included the West Point band.
Fans stopped to sign a memorial banner that will be presented Sunday at ceremonies at Ground Zero. Giuliani spoke during the ceremony.
"I'm here because West Point is honoring our first responders: the firefighters, police officers, rescue workers who were our first line of defense against this attack against America," Giuliani told the AP. "I love West Point. I've been coming to games since the 1980s."
Malcolm Brown ran for 77 yards on the ground for the Black Knights, who outrushed San Diego State, 403-146.
"Yards don't win games," Army coach Rich Ellerson said. "Turnovers is what correlates to the final score."
Down by a field goal with 2:48 remaining, Army marched to the 25-yard line. But the Aztecs defense, one of the nation's best in facing triple-option offenses, held with a pass breakup, a sack and a forced fumble. A last-ditch, fourth-down pass fell incomplete, as Army was denied its 650th win in program history.
The Aztecs did not commit a turnover for the third straight game. It's the first time San Diego State has done that since making the jump to Division I, now the FBS, in 1969. San Diego State is now 11-4 over its last 15 games, its best stretch in 33 years.
Already up 7-0, San Diego State recovered one of five first-half Army fumbles when Steelman was hit on a keeper. Vaness Harris picked up the loose ball, setting up a 16-yard touchdown run by Hillman four plays later.
Army answered with the next two scores, but couldn't build off it. Steelman ran in from a yard out to cap an 11-play, 71-yard drive, to get on the board, and the Cadets evened it up when Steelman posted an 11-yard run midway through the second. The second score came on third-and-goal from the 11, salvaging a 15-play, 82-yard drive.
San Diego State took a 20-14 lead on Hillman's second score of the day, a 20-yard rush around two tacklers that capped an 80-yard drive with 2:18 left in the third.
The Aztecs never trailed.
The Black Knights' home opener also marked the first time that a California team had visited Michie Stadium since 1980.
Martez Walker run for 19 yds to the EMich 28 for a 1ST down
Chris Blewitt 47 yd FG MISSED
Brandon Silvers pass complete to Teddy Ruben for 58 yds for a TD
Brandon Wilson run for 2 yds for a TD
Cooper Rush pass complete to Romello Ross for 63 yds for a TD
Taz Bateman run for 3 yds Taz Bateman fumbled, forced by Cedarius Rookard, recovered by Troy Terris Lewis