Jack Nunge had 14 points and 14 rebounds, Paul Scruggs also scored 14 points and Xavier led wire to wire in knocking off No. 19 Ohio State 71-65 on Thursday night.
Jamari Wheeler hit a 3-pointer to get Ohio State within two points with 17 seconds left, the closest the Buckeyes had been all evening.
A pair of free throws by Scruggs pushed the Xavier lead back to four. Scruggs then stole Ohio State's inbounds pass and sank two more free throws to ice the game for the Musketeers (3-0).
Nate Johnson had 12 points and Adam Kunkel added 10 for Xavier.
CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM
E.J. Liddell had a season-low 17 points for the Buckeyes (3-1), who had dropped two spots in the AP Top 25 after two closer-than-expected games to start the season. Meechie Johnson Jr. had 14 points and Kyle Young scored 12.
Neither team shot particularly well. Ohio State began the game shooting 1-for-10. Xavier made 40% of its shots for the game, and the Buckeyes shot 37.7%.
The Musketeers led by nine at the half. They were up by as much as 11 points in the second half, but the Buckeyes began chipping away in the final five minutes and looked as if they might pull it out when Wheeler hit the big 3.
BIG PICTURE
Ohio State: This was the worst shooting game for the Buckeyes thus far. They got off to a slow start, shooting 33% in the first half, and couldn't catch up.
Xavier: The Musketeers have played teams close in winning their first three games. They prevailed by three points in the season opener against Niagara and erased a second-half deficit against Kent State.
POLL IMPLICATIONS
The Buckeyes likely will drop again.
UP NEXT
Ohio State: Faces Seton Hall on Monday in Fort Myers, Florida.
Xavier: Hosts Norfolk State on Sunday.