Junior center Roy Tarpley scored a career-high 31 points and junior forward Richard Rellford had 17 as the No. 8 Wolverines, playing at home, won their eighth straight game.
Tarpley scored 21 points in the second half, helping turn a 41-35 halftime lead into a 69-45 advantage with just under 10 minutes to play.
The Boilermakers closed the gap near the end, pulling within seven, 87-80, with 1:16 to play on a 20-foot jumper by freshman guard Troy Lewis.
But the Wolverines clinched the victory on a pair of Tarpley free throws and a slam-dunk by junior forward Butch Wade in the final 70 seconds.
Michigan took a 13-0 lead by scoring on its first six possessions. Rellford contributed seven points in the run.
But Purdue fought back to within six at halftime, 41-35, on a layup by Lewis with four seconds left. Lewis scored 11 points in the first 20 minutes and finished with a season-high 22.
Sophomore guard Antoine Joubert added 16 points for Michigan.
The victory left Michigan in a first-place tie with Iowa in the Big Ten with an 8-2 conference record. The Wolverines are 17-3 overall. The Boilermakers fall to 14-6 and 5-5 in the Big Ten.