ANN ARBOR, Mich. -- Michigan sank to an all-time low on a day as miserable as its season.

C.J. Bacher threw touchdown passes on his first two drives of the second half to lift Northwestern to a 21-14 win Saturday over the Wolverines, handing them eight losses overall and five at home for the first time in the storied program's 129-year history.

"I'm sick to my stomach right now," senior safety Brandon Harrison said.

Many fans likely felt the same way, leaving Michigan Stadium mostly empty in the second half because of subfreezing wind chill, rain, sleet and snow along with poor play.

"It was tough to stay," coach Rich Rodriguez said. "It's our job to put a team out there that everybody is proud of."

College football's winningest program had already sealed its first losing season since 1967 and snapped a 33-season bowl streak.

The latest loss guaranteed the Wolverines (3-8, 2-5 Big Ten) would fail to win consecutive games for the first time since 1962 in Rodriguez's debut season.

"Everybody's going to judge you on your record, and that's fair," Rodriguez said. "I do think we're making some steps that will eventually show up on game days."

At least one Wolverine said the season can be salvaged by upsetting rival Ohio State next week.

"If we can come out and beat O-State that would clear everything up," Harrison said.

Northwestern (8-3, 4-3) will close the regular season at home against rival Illinois, hoping to improve its bowl destination while preventing the Fighting Illini from winning their sixth game to be eligible for the postseason.

"It's special to have November be a significant month," coach Pat Fitzgerald said.

The Wildcats have won eight games for the first time since 2000 -- the last time it beat Michigan -- and for just the fifth time since 1905.

They won at the Big House for the first time since 1995, when its coach was a star linebacker.

"This was a big program win for us," Fitzgerald said, "to come back and respond again and beat an improved Michigan team that was playing their best football of the year on their senior day."

Michigan led 14-7 midway through the second quarter, then fell behind after Northwestern scored back-to-back TDs to open the third.

The Wolverines had two chances late in the game to drive for an overtime-forcing TD, including having the ball at its 42 with 1:46 to go and no timeouts left, but failed to do much with the ball.

Bacher was 17-of-29 for 198 yards with two TDs and two interceptions. Ross Lane had seven receptions for 77 yards and a TD while Eric Peterman caught five passes for 79 yards, including a 53-yard score.

Northwestern quarterback Mike Kafka was sidelined in the second quarter with a concussion and replaced by Bacher, who started the game.

Michigan's Nick Sheridan was 8-for-29 for 61 yards and ran for a score. Steven Threet replaced him in the second half, but left the game with an injury late in the fourth quarter after completing 4 of 7 passes for 22 yards and an interception.

Carlos Brown had a season-high 115 yards rushing for the Wolverines.

The game started off as ugly as the conditions with an interception, a blocked field goal and a muffed punt return in the first 3-plus minutes.

Northwestern took advantage of the mishandled punt return, taking a 7-0 lead on Stephen Simmons' 21-yard run on third-and-18.

Michigan tied it late in the first quarter on Sheridan's run. Michael Williams blocked a punt and Ricky Reyes returned it a few yards for a TD, giving the Wolverines a 14-7 lead at halftime.

"All of a sudden you come out in the second half and it's snowing," Fitzgerald said. "It's beautiful Big Ten football weather day."

Bacher tied the game, throwing a 17-yard pass to Lane on third-and-goal. Bacher put the Wildcats ahead 21-14 when he connected with a wide-open Peterman, who ran 53 yards untouched.

Threet, who had been sidelined by concussion-related symptoms, entered the game after Michigan opened the second half with four straight three-and-out possessions.

He threw behind an open receiver in the end zone and Jordan Mabin intercepted it early in the fourth quarter.

Threet was hurt after running for a first down with 4:21 left and was replaced by Sheridan, who turned the ball over on downs at the Northwestern 34.

The Wolverines got the ball back again, but Sheridan couldn't complete a pass and Northwestern's seniors avoided going winless against the once-mighty program.

"Being a fifth-year senior, I've been a part of beating every Big Ten team," Lane said. "It's like a dream come true."