Traevon Jackson hit a pull-up jumper with 2.1 seconds left for Wisconsin, seconds after Michigan State's Adreian Payne tied it with a 3, and Wisconsin beat the ninth-ranked Spartans 60-58 on Sunday.
The Badgers (19-5, 6-5 Big Ten) committed 14 turnovers, six more than their NCAA-leading 8.3 per game, but gutted out a win over the Spartans (20-4, 9-2).
A desperation 3 by Michigan State from midcourt banged off the rim as time expired, and the Wisconsin faithful erupted with applause. The victory snapped a three-game losing skid at home.
Tied at 58, coach Bo Ryan again put the ball in the hands of Jackson, who has a history of hitting clutch shots.
With a man in his face, Jackson veered left of the lane and pulled up from about 10 feet to give Wisconsin the lead in a frenetic final minute.
Nigel Hayes led Wisconsin with 14 points, while Sam Dekker added 11. Payne had 24 points.
Travis Trice added 13 points for Michigan State, though Big Ten-leading scorer Gary Harris was held to six points on 3-of-20 shooting after being shadowed most of the afternoon by defensive specialist Josh Gasser.
Badgers 60, Spartans 58
And yet Michigan State still had a chance late, even with guard Keith Appling sitting out a second straight game with a wrist injury.
Harris' long bucket with about 23 seconds left -- one of his few bright spots on the afternoon -- got the Spartans within three.
Wisconsin had a chance to turn it into a two-possession game, but Ben Brust missed the front end of a 1-and-1. Michigan State secured the rebound and called timeout.
Coach Tom Izzo drew up a play that ended up with Payne holding the ball. He had burned Wisconsin much of the night on the inside.
This time Payne hit from the outside with 10 seconds left and the Badgers faithful thought they were witnessing another late collapse at home. The loss to Ohio State more than a week ago ended up about the same way.
But Jackson, who has struggled much of the last month during Wisconsin's stretch of losing five of six, came up big. He finished with eight assists and seven points, but had five turnovers.
Wisconsin led by double-digits much of the second half. Things got shaky late.
After two empty Wisconsin possessions, the Spartans raced down in transition and Trice hit a 3 from the wing to get within 55-52 with 1:43 left.
They just couldn't break through in the end. A five-game winning streak over Wisconsin came to an end.
Payne finished 9 of 16 from the field in his second game, and first start, since returning from a foot injury.
Gasser finished with 11 points and six rebounds for the Badgers. His straightaway 3 with 6:33 left gave the Badgers a huge lift and a six-point lead that was slowly chipped away by the Spartans.
But Gasser gave his team an ever bigger lift with his defense on the crafty Harris.
The Badgers finished the first half on an 11-0 run to take a 30-22 lead at the break. A crowd overwhelmingly dressed in Wisconsin red groaned after Gasser came up holding his left arm after being whistled for a blocking foul.
Jackson pulled up for a foul-line jumper in transition to get the crowd at the Kohl Center going into a fever pitch and a three-point lead. They eventually got to witness Wisconsin's first home win since beating Illinois by 25 on Jan. 8.