The rain and a stout Wisconsin defense that sacked Ohio State quarterback Justin Fields four times in the first half stunted No. 3 OSU's customary first-half getaway before the Buckeyes scored late to take a 10-0 lead at the break.
Fields followed Wisconsin's fourth sack with a 27-yard touchdown pass to Chris Olave on the next play.
That added to a 49-yard Blake Haubeil field goal on the previous possesion to put Ohio State two scores in front of a Badgers' offense that could not find any room to operate through two quarters.
Tailback Jonathan Taylor gained just 25 yards on 12 first-half carries and the Wisconsin offense managed just 72 yards overall.
OSU more than doubled that, with 180 yards, 85 of which came on their final possession.
That began at the Wisconsin 15 after a punt with 2:37 left.
J.K. Dobbins 17-yard run on the first play made the decision for head coach Ryan Day to be aggressive, and four of the next five plays resulted in first downs.
Olave found room in the secondary on a cross-and-go route from the right side, much like the pattern he ran last week at Northwestern to score the first TD in OSU's 52-3 rout.
Ohio State will receive the second-half kickoff with a chance to gain further separation.
The 10-point margin is as close as any team has been to OSU at the half this season.
Wisconsin is the first opponent to hold the Buckeyes without at least a 21-point quarter in the first half.
Fields finished the first half 8-of-14 for 109 yards.