The grind-it-out game played exactly to expectations on Saturday.
Cam McDaniel scored a go-ahead touchdown early in the fourth quarter and Notre Dame's defense took it the rest of the way in a 17-13 victory over Michigan State at Notre Dame Stadium.
"It's really the way I envisioned the game (and) that's the way we called it," Irish coach Brian Kelly said. "I wanted to throw the ball so badly on those last few drives, but we felt like we wanted to put our defense back on the field and not give Michigan State an opportunity to win the game on defense."
McDaniel scored on a 7-yard run with 14:44 left in regulation as No. 22 Notre Dame (3-1) claimed its 10th straight win at home.
The Irish then shut down two late Spartans drives, including a final effort that sputtered deep in Michigan State territory after a fourth-and-20 scramble by quarterback Andrew Maxwell fell short.
The Spartans (3-1) were plagued by ill-timed penalties, including two pass interference calls on Notre Dame's go-ahead drive. Michigan State was penalized 10 times for 115 yards, including four for interference.
But the worst part were breakdowns deep in Irish territory.
"(We) ran the ball effectively, had our opportunities in the red zone," Spartans coach Mark Dantonio said. "Kicked a couple of field goals, missed one. (But) you've got to score touchdowns in those situations.
Michigan State entered the game leading the nation in total defense (177 yards per game) but gave up a season-high 224 yards.
Irish quarterback Tommy Rees completed 14-of-34 passes for 142 yards and a touchdown and McDaniel rushed 16 times for 44 yards and a score.
Michigan State quarterback Connor Cook was 16-of-32 for 135 yards and a touchdown. Jerry Langford rushed 14 times for a game-high 68 yards.
"It's hard," Langford said. "We played tough overall as a team, but we've got to finish drives. When we make the long drives, we have to finish and get touchdowns instead of field goals."
Michigan State's initial push opened deep in Notre Dame territory after freshman Matt Macksood blocked Kyle Brindza's punt. A high snap forced Brindza into a quick kick and the Spartans took over at the Irish 31.
But Michigan State stalled at the Notre Dame 13 as Kevin Muma misfired on a 30-yard field goal try.
The Irish took a 3-0 lead with 3:48 left in the quarter as Brindza capped a seven-play, 51-yard drive with a 41-yard field goal.
Notre Dame was unable to push beyond the Michigan State 20 early in the second quarter and Brindza failed on a 37-yard field goal try, his second miss in seven attempts this season.
The Spartans claimed their lone lead with 7:43 left in the half when Cook hit Macgarrett Kings on a 12-yard touchdown strike, Kings' second TD reception of the season. Michigan State took advantage of two 15-yard penalties to advance in a 14-play, 79-yard drive for a 7-3 lead.
A fourth-down pass interference call with 1:30 left in the half gave Notre Dame a first down at the Spartans 26. Three plays later, the Irish had a first-and-goal at the Spartans 2 and Rees connected with TJ Jones in the back of the end zone on third down as Notre Dame claimed a 10-7 lead with 17 seconds showing.
Michigan State's first drive of the second half bogged down at the Notre Dame 8, leaving Michael Geiger to tie the score at 10 with a 25-yard field goal.
A trick play backfired on the Spartans on their next possession when wide receiver R.J. Shelton lofted a long pass intended for wide receiver Bennie Fowler. The pass was picked off by safety Matthias Farley and returned 29 yards to midfield and greeted by two flags.
"R.J.'s deal was my call," Dantonio said. "I felt we needed a big play."
One penalty was a 15-yard personal foul against Michigan State that gave Notre Dame possession at the Spartans 37.
Rees then had a pass was intercepted by cornerback Darqueze Denard in the end zone, but officials called the Spartans for pass interference. Another interference call gave Notre Dame a first-and-goal at the 7.
Two plays later, McDaniel scampered in for his second touchdown of the season and a 17-10 lead with 14:44 to play.
Geiger kicked a 42-yard field goal with 10:40 left, trimming the deficit to 17-13.