COLUMBUS, Ohio -- Keita Bates-Diop scored a career-high 32 points, and Ohio State stunned No. 1 Michigan State 80-64 on Sunday.

The overachieving Buckeyes put together an electrifying 12-0 run to finish the first half and kept their foot on the gas to give first-year coach Chris Holtmann a signature win.

Ohio State (13-4, 4-0 Big Ten) won for its third straight in taking down the best team it is likely to see this season. The mistake-prone Spartans (15-2, 3-1) lost for the first time in the last 15 games, dating back to a seven-point loss to then-No. 1 Duke on Nov. 14.

The Spartans, who came in leading the nation with a 53.3 field-goal percentage, shot just 39 percent for the game and committed a dozen turnovers. Joshua Langford and Miles Bridges each scored 17 points.

Bates-Diop hit 12 of 21 attempts from the floor, including 2 of 4 from the 3-point line. His previous career high was 27 points against Iowa three days ago.

C.J. Jackson had 14 points for Ohio State, and Jae'Sean Tate added 13.

With the exception of Bates-Diop, neither team shot particularly well in the first half.

Kam Williams opened up the second half with a slam, and the Buckeyes never trailed again. Michigan State pulled to within 14 points with 6:25 left but couldn't get closer.

Fans streamed onto the court afterward to celebrate the win with players.

Ohio State last beat the No. 1 team in the country in 2007, when the then-No. 2 Buckeyes beat Wisconsin 49-48.

BIG PICTURE

Michigan State: The discombobulated Spartans let the game slip away at the end of the first half and couldn't adjust in the second.

Ohio State: The Buckeyes made the most of their momentum and played solid defense to shock the nation's top team.

UP NEXT:

Michigan State: Hosts Rutgers on Wednesday.

Ohio State: Hosts Maryland on Thursday.