Michigan State (16-2, 7-0) relied on tough defense to extend its school-record Big Ten winning streak to 19 games. The Cornhuskers (13-5, 3-4) had their school-record 20-game home win streak end.
The Spartans led by 12 points in the final 2 minutes, but Nebraska cut the lead to four twice before Matt McQuaid made a pair of free throws for his first points with 14.2 seconds to put the game away.
Nebraska shot a season-low 32.8 percent and was just 5 of 26 on 3-pointers, 1 of 12 in the second half.
James Palmer, who led Nebraska with 24 points, struggled mightily from the field, going 6 of 21, but he made all 11 of his free throws. Isaac Copeland added 13 for the Huskers.
Winston scored eight of the Spartans' first 18 field goals and assisted on five others, but his teammates were the ones who finally created some separation.
Aaron Henry hit a 3-pointer, Kenny Goins scored off Ward's great entry pass and Henry had a lay-in to finish a 7-0 spurt that gave Michigan State its biggest lead of the game to that point, 51-44.
Nebraska got it back to three points, but Ward's layin and Winston's 3-pointer made it 56-48.
The Huskers came out with the intent to slow the pace and were mostly successful.
Michigan State closed the half on an 11-2 run to lead 33-28 at the break. The Huskers, who trailed at halftime for the first time in 10 home games, shot just 28.6 percent and had only one field goal in the last 4:47.
Michigan State: This was a gut-check win for the Spartans, who were without Joshua Langford (ankle) for a fifth straight game and Kyle Ahrens (back) for a second in a row.
Nebraska: The Huskers were feeling pretty good about themselves after an impressive win at No. 25 Indiana on Monday, and they had an amped standing-room crowd on hand for the Spartans' visit. But they had no answer going against the nation's No. 3 team in field-goal defense.
Michigan State hosts No. 19 Maryland on Monday.
Nebraska visits Rutgers on Monday.