Elijah Johnson added 15 points and Kevin Young scored 14 for the Jayhawks (7-2), who extended their 47-game home non-conference winning streak over the injury-depleted Buckeyes.
Jared Sullinger, Ohio State's star sophomore, was out for a second straight game with back spasms.
William Buford put in 21 points for Ohio State (8-1), which went down to defeat for the first time after having beaten its first eight opponents by an average of almost 30 points.
Deshaun Thomas put in 19 points for the Buckeyes.
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Beyonce flaunts bikini body, Blue Ivy in vacation pics