"Things were a bit rough there for a minute," Louisville quarterback Reggie Bonnafon said. "We just kept our composure and knew that we were going to turn it back around and keep executing our game plan and that's what happened."
Louisville coach Bobby Petrino said he was happy for his players.
"We knew it was going to be a fourth-quarter game," Petrino said. "They competed extremely hard. I think our assistant coaches on offense did a great job on the sideline of calming our guys down, keeping our poise."
The Irish had a chance to force overtime but Kyle Brindza missed a 32-yard field goal wide right with 51 seconds left. It was the second straight time a missed field goal cost Notre Dame a game. Brindza missed a field goal in overtime a week earlier against Northwestern.
"We've lost back to back games because we couldn't put down a ball and kick it 32 yards," Notre Dame coach Brian Kelly said.
Bonnafon ran for a pair of touchdowns and threw a 21-yard scoring pass to DeVante Parker for the Cardinals. Bonnafon was 8-of-31 passing for 180 yards with one interception.
"Reggie did an unbelievable job in the fourth quarter of leading us down the field," Petrino said.
The Cardinals (8-3, No. 24 CFP) kept alive their hopes for a third straight season of at least 10 wins. The Irish (7-4), after starting the season 6-0 and being ranked No. 5, have lost four of their last five, and the three straight losses is the longest losing streak for the Irish since Kelly's first season as coach in 2010.
"It definitely hurts," Notre Dame quarterback Everett Golson said.
The Irish gave up 30 or more points for the sixth straight game, the first time that's happened in 126 seasons of football. The 242 points Notre Dame has given up in the span is the most ever by Notre Dame in six games.
The Irish -- already playing without defensive lineman Sheldon Day, a captain, and middle linebacker Joe Schmidt, a leader, because of injuries -- lost defensive lineman Jaron Jones and cornerback Cody Riggs early in the game because of injuries.
"We played a lot of freshmen in there and a lot of young guys. They battled as best they could," Kelly said
Radcliff rushed for 136 yards as Louisville amassed 229 yards rushing while holding the Irish to 99 yards running.
"We felt like we could run the ball, and we did it late in the game, which is real important to winning games," Petrino said.
Parker, who missed the first seven games with a broken bone in his foot, was held to fewer than 100 yards for the first time in four games with four catches for 65 yards.
Cardinals safety Gerod Holliman didn't get an interception, so he remains one shy of tying the NCAA record.
Golson passed for two touchdowns and rallied the Irish from an 11-point deficit to within three points. He drove the Irish down to the 9-yard line. But he was sacked for a 6-yard loss with 61 seconds left and then his pass to C.J. Prosise was incomplete.
Golson was 16-of-24 passing for 236 yards and threw his 13th interception of the season. The Irish closed to 31-28 early in the fourth quarter when Golson scrambled for time and threw to Corey Robinson in the end zone. The ball ricocheted off Robinson and Will Fuller caught it for his 14th TD of the season. Fuller had five catches for 109 yards and a touchdown. Tarean Folston ran for 134 yards and a touchdown for the Irish.
Fuller said the Irish were disappointed they couldn't get a win for the seniors in their final home game.
"I wish we could do something to have that moment back and win," he said.
The number of Louisville fans in the crowd was apparent because of the red pockets throughout Notre Dame Stadium.
"The city of Louisville came up here and supported us," Petrino said. "What an unbelievable crowd. I didn't think there was this many but it was pretty awesome when we got off the bus and it was almost like we were at home with our Card march. They were pretty loud. They helped us a lot, there's no question about that."