MADISON, Wis. -- Ethan Happ made his mentor proud.
On a night when Wisconsin honored Frank Kaminsky, one of the best players in program history, Happ led the current crop of Badgers to their biggest win of a challenging season.
Happ finished with 21 points and 12 rebounds after the school retired Kaminsky's jersey, and Wisconsin beat No. 6 Purdue 57-53 on Thursday to hand the Boilermakers their third straight loss.
Carsen Edwards, who finished with 22 points, missed a 3 with 12 seconds left to end Purdue's comeback hopes. Wisconsin's Brevin Pritzl went 3 of 4 from the foul line over the final 19 seconds to seal a win so big in Madison that fans rushed the court after the final buzzer -- including Kaminsky.
It felt like 2015 again, when Kaminsky led the Badgers to the national championship game as a senior.
"You want to say `thanks' to Frank and `thanks' to all the alumni? The best way to show your respect ... go out and play really well," coach Greg Gard said.
Happ didn't play that season as a redshirt, but he did practice against Kaminsky every day. Those afternoons trading elbows in the paint and learning moves from Kaminsky have paid off -- to the point where Happ passed his role model for 11th place on the school's career scoring list on Thursday.
"It's funny how life works sometimes, to have this be the game with Frank, who taught me so much," Happ said. "It's very special to do that."
The Boilermakers had seemingly overcome early offensive hiccups after a 10-0 run gave them a 39-32 lead with 9:37 left when Wisconsin (12-16, 5-10 Big Ten) answered with aggressive play sparked by freshman guard Brad Davison (16 points).
It was a debilitating loss for Purdue's chances of winning the league. The Boilermakers (23-5, 12-3) are struggling with the conference tournament just a couple weeks away.
"We're a team that has to have good balance in our jump-shooting, coming off screens," coach Matt Painter said. "It was one of those games where things weren't going your way. You had to grind it out."
A choppy first half ended with a 21-all tie after the teams combined to miss 37 shots.
Purdue: The Boilermakers were lucky to be tied at halftime after laboring through a scoring drought of 8:17. Seven of their first 13 turnovers came in the game's first 16-plus minutes. Their offensive woes continued after coming into the night having been held to less than 65 points for two straight games for the first time since 2014-15.
"It's a head-scratcher at this point," forward Vince Edwards said about the losing streak. "We've got to figure out something."
Wisconsin: Young players have been thrust into bigger-than-expected roles because of injuries this season, but they put together a complete game against one of its toughest opponents of the year. The Badgers have had games when they've played well for one half, only to get blown out in the other, or vice versa. This game represented an important step forward for Gard's club.
"This team has had a lot of potential all year, and we've been coming up short in a lot of games," Davison said. "A lot of people have given up on us going into the end of the year, but we haven't given up on ourselves."
Seven-foot-2 center Isaac Haas, who had 12 points and 11 rebounds, made Happ work on offense. The 6-10 Happ was 9 of 20 before fouling out with 21 seconds remaining, but not before adjusting in the second half by taking more angles against Haas instead of trying to shoot over him.
Purdue shot 39 percent (19 of 48) on the night, but 23 percent (4 of 17) from the 3-point line. They were just 1 of 7 from the arc in the second half.
Painter said the misses seemed to affect his team's play in other areas.
"We got stops and then we didn't get the rebound and they got second-chance points, and they scored off turnovers in the first half -- that's the frustrating part," Edwards said.
Gard secured his sixth win against a Top 10 team in his two-plus seasons since succeeding Bo Ryan.
Purdue: Hosts Penn State on Sunday.
Wisconsin: Hosts Minnesota on Monday.
More AP college basketball: http://collegebasketball.ap.org and http://www.twitter.com/AP-Top25
French finishes alley-oop for Saint Louis' bucket
Jordan Goodwin tosses a lob to Hasahn French who throws it down with two hands.
Harris comes up with two-handed slam
Buffalo's Jeremy Harris smashes a two-handed dunk to give the Bulls a 26-20 lead over the Eagles.
Groce makes layup and draws foul
Eastern Michigan's Ty Groce drives to the basket for a one-handed layup, and draws a foul.