Caris LeVert added 17 points for the surging Wolverines (15-4, 7-0 Big Ten), who notched a third consecutive victory over a Top 10 opponent, following wins over Wisconsin and Iowa.
Michigan sealed the victory with a 10-0 run capped by a 3-point play from Walton after trailing by two points with 4 minutes remaining.
Gary Harris scored 27 points for the Spartans (18-2, 7-1), who had their 11-game winning streak broken.
Alvin Ellis III put in 12 points and Keith Appling added 10 for MSU.
Scarlett Johansson steps out with fiance after pregnancy reveal
Teacher apologizes for showing sexual image of herself in class