The Golden Gophers (3-1, 1-0 Big Ten) finally held on against Northwestern (2-2, 0-1) after losing to the Wildcats in the final seconds the two previous years.
They trailed briefly, 24-21, after Northwestern's Mike Kafka hit a leaping Brendan Mitchell with a 13-yard touchdown pass in the closing seconds of the third quarter.
Minnesota started the fourth with an 83-yard scoring drive, getting a 10-yard pass from Weber to Brandon Green on third down at the Northwestern 23 before Bennett ran it in from the 4. That made it 28-24 and Minnesota hung on from there.
Any chance Northwestern had at a comeback ended when Cedric McKinley stripped Mike Kafka as he dropped back to pass with the ball on the Wildcats 17 and recovered the fumble. That led to a 1-yard TD from Weber to Eric Decker, making it an 11-point game with 1:43 left.
The Gophers' D.L. Wilhite then stripped Kafka again as he dropped back and recovered the fumble with 1:26 to play, and this time, Minnesota escaped with a tense win.
Bennett ran for 89 yards and Weber threw for 186. He was intercepted once and threw both touchdowns to Eric Decker, who caught eight passes for 84 yards.
Kafka, who set a Big Ten record for a quarterback by rushing for 217 yards against Minnesota last year, had his moments for Northwestern. He was 32 of 47 with 309 yards after setting school marks by completing his first 16 passes and 83.3 percent in all in a 37-34 loss at Syracuse last week.
Minnesota picked itself up after falling 35-21 to California in a game that was tied in the fourth quarter, regrouping against a team that had caused it plenty of misery.
Northwestern rallied from 21 down to a 49-48 double overtime win in Evanston in 2007, and last year sent Minnesota into a season-ending tailspin with a 24-17 last-second victory.