Just before the touchdown, Thomas appeared to fumble near the goal line, but officials ruled he was down. A replay appeared to show otherwise.
The Wolverines, who blew a 20-point second half lead to Illinois last season, rallied from a 21-7 deficit in the third quarter behind Drew Henson. After missing the first three games with a broken right foot, Henson replaced an ineffective John Navarre at quarterback late in the second quarter.
Thomas rushed for 228 yards and two touchdowns to help the Wolverines (3-1, 1-0 Big Ten) avoid a repeat of last week's close loss at UCLA.
Illinois' final drive ended when Jameel Cook fumbled near midfield. The Illini (3-1, 0-1) missed a chance at the program's best start since 1951.
The Illini seemed to contain Michigan on the Wolverines' first drive, but were fooled by a fake punt. Halfback Walter Cross grabbed the snap and squirted untouched through the line.
Kittner tried to answer quickly, lofting a 50-yard pass into the arms of wide open flanker Aaron Moorehead, who dropped it.
The momentum swung on two punts. Illinois' Steve Fitts pinned Michigan at its own 2. When the Wolverines' drive faltered, punter Hayden Epstein bobbled a low snap in the end zone.
He scrambled and tried to kick, but instead sent the ball floating sideways and Illinois batted it out of bounds at the 3. Antoineo Harris ran it in for Illinois on the next play.
Late in the half, Moorehead again broke away from a defensive back. This time, he caught Kittner's pass for a 58-yard touchdown play.
With Illinois leading 14-7 and 1:42 left, Michigan Lloyd Carr switched quarterbacks, eplacing Navarre with Henson.
Henson exploited Illinois' prevent defense to move the Wolverines into field-goal range with 14 seconds to go in the half.
Epstein, who missed a late 24-yard field goal last week in Michigan's 23-20 loss at UCLA, missed the 32-yarder wide left.
Illinois did not surrender that momentum. Kittner drove the Illini 65 yards on the opening series of the second half, hitting tight end Josh Whitman with a 15-yard TD pass.
Henson and David Terrell, held to two catches for 12 yards in the first half, starred on the next drive.
On fourth-and-inches near midfield, Henson dove over the top for the first down. Then he went deep to Terrell, who jumped so high to make the catch that he landed flat on his back at the Illinois 11. Henson scored on an 8-yard scramble.
Kittner answered, connecting on several key passes during a 76-yard drive that ended with a 24-yard field goal by Fitts that put Illinois up 24-14 with 22 seconds left in the third quarter.
On the second play of the fourth quarter, Henson hit Terrell with a 57-yard touchdown pass to get Michigan within three.
On the next drive, Kittner twice hit Greg Lewis on passes longer than 20 yards to set up a 17-yard touchdown throw to Eric McGoey that made it 31-21.
Chris Perry scored on a 15-yard run to bring Michigan close again, 31-28, with 9:29 to go.
With less than five minutes to go, Illinois stopped Michigan on a key third-and-6 at the Illini 42, forcing a punt. Michigan lined up as if it was going for it, but Henson punted into the end zone.
Starting at its 20, Illinois couldn't run out the clock. On a third-and-6, Rocky Harvey tried for extra yardage and fumbled.
Michigan took over at the Illinois 26. Two plays later, Thomas ran for 17 yards, but appeared to fumble near the goal line.
Illinois recovered, but the officials ruled Thomas was down. Thomas then scored the game-winner.
©2000 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed