P.J. Hill Jr. led the way with two touchdowns on 29 carries for 161 yards.
Lance Smith ran for one score; Paul Hubbard caught four passes for 80 yards; John Stocco completed 13 of 21 passes for 201 yards and one interception; and Travis Beckum added four receptions for 68 yards for the Badgers (7-1, 4-1 Big Ten).
Chris Summers kicked a 47-yard field goal to open the scoring; Chris Painter went 20-for-40 passing for 187 yards, no touchdowns and one interception; and Kory Sheets rushed for 57 yards on 10 carries for the Boilermakers (5-3, 2-2 Big Ten).
Purdue, which led the conference in total offense with 471.7 yards per game when the contest began, was held to 275 total yards.