SOUTH BEND, Ind. >> Riley Leonard threw two touchdown passes and ran for another, and No. 16 Notre Dame capitalized on No. 15 Louisville’s first three turnovers of the season to hold on for a 31-24 victory Saturday.

Notre Dame (4-1) relied on a last-minute defensive stand to hand the Cardinals their first loss of the season. Louisville (3-1) had a delay-of-game penalty on a fourth-and-1 at the Notre Dame 46. After the five-yard penalty, an incomplete pass ended the Louisville comeback attempt.

Leonard was 17 for 23 for 163 yards. Louisville’s Tyler Shough was 24 for 41 for 264 yards and three touchdowns, but was intercepted once. Shough had thrown 88 passes without an interception this season before getting picked off on a deflected pass.

Louisville committed its three turnovers in the first half and trailed 24-14 at halftime.

After a 56-yard field goal by Brock Travelstead with 11:25 left in the game pulled Louisville within 24-17, Notre Dame surged back to regain a two-touchdown lead.

Leonard’s screen pass to Jeremiyah Love turned into a 32-yard scoring play, and the Fighting Irish were in front 31-17 lead with 9:16 remaining.

Louisville fought back with a 24-yard touchdown pass from Shough to Ja’Corey Brooks with 5:17 left to trim the Notre Dame lead to 31-24.

Louisville grabbed the early advantage in a rainy start at Notre Dame Stadium. T.J. Capers forced a fumble by Notre Dame returner Devyn Ford on the opening kickoff. Tamarion McDonald pounced on the ball at the Fighting Irish 24.

The Cardinals only needed three plays to cash in. Shough threw a 10-yard strike to Isaac Brown for the touchdown and Travelstead’s kick gave Louisville a 7-0 lead.

Notre Dame then went ahead 21-7 in a span of 5 minutes, 42 seconds.

Notre Dame answered on its next possession, driving 75 yards on 12 plays. Love bulled his way into the end zone from the 6 for the touchdown.

What looked like a huge gain for Louisville turned into the Cardinals first turnover of the season. Shough bolted out of the backfield on a misdirection play and raced 43 yards, but Notre Dame’s Leonard Moore caught up to Shough and forced a fumble. Jaiden Ausberry recovered for Notre Dame at its 47. Leonard put the Irish ahead with a 34-yard touchdown pass to Jaden Greathouse.