Notre Dame was fortunate to go into halftime trailing USC 17-10, and the Irish have freshman George Atkinson III to thank.
Atkinson returned a kickoff 96 yards for a touchdown with 3:22 to play in the first half to get Notre Dame going after it slept through most of the opening 30 minutes.
The Irish were outgained 253 to 127 and had seven first downs to the Trojans' 17.
USC quarterback Matt Barkley threw for 125 yards and two first-quarter touchdowns. Robert Woods caught five passes for 46 yards in the first half.
Notre Dame quarterback Tommy Rees threw for 110 yards, and his best first-half option was slot receiver Theo Riddick, who had four catches for 49 yards.
Notre Dame was able to hold USC to a field goal in the second quarter, and that was a small miracle considering the craziness on the Trojans' scoring drive.
The Irish had stopped the Trojans on third-and-5, but Notre Dame linebacker Carlo Calabrese flexed over a USC and got nailed for taunting. The 15-yard penalty moved USC to the Notre Dame's 34.
The Trojans gave the 15 yards back with a face mask penalty, but on second-and-25 from the Irish's 38, Notre Dame safety Jamoris Slaughter got called for a personal foul after what looked like a hard, clean hit.
USC got the ball at the 23 after the Slaughter penalty, moved to the 8 and finally settled for a 25-yard field goal from Andre Heidari.
After the wacky drive, Notre Dame came alive thanks to Atkinson.
The freshman returned his second kickoff for a touchdown going 96 yards to cut USC's lead to 17-7 with 3:34 left in the first half.
After the Trojans were forced to punt, the Irish got in gear on offense.
Rees hit Riddick for a 25-yard pass then found TJ Jones for 16 yards. The Irish got down to the Trojans' 7, but Rees couldn't hook up with Michael Floyd, ad then former Bishop Dwenger standout Tyler Eifert, in the end zone and Notre Dame settled for a 25-yard David Ruffer field goal that cut USC's lead to 7.