Williams stepped up to save the day.
The streaky guard put the Buckeyes back on top when he made a 3-pointer and was fouled with 1:35 left.
He made the ensuing free throw to give Ohio State a two-possession lead.
After Reed Tellinghuisen missed a 3-pointer at the other end, SDSU again fouled Williams behind the arc. He missed the shot this time but hit all three freebies to push the advantage to seven for Ohio State.
This time the Jackrabbits could not recover.
The Buckeyes, who looked rejuvenated after nearly two weeks off from a grueling Big Ten season, won an NCAA tournament game for the first time in three years.
Williams ended up with 24 points while Jackson added 20.
Mike Daum led SDSU with 27 points.
The Buckeyes advance to play fourth-seeded Gonzaga on Saturday.
The Bulldogs blew out Ohio State 86-59 in November, but that was before the Buckeyes found their stride in their first season under coach Chris Holtmann.
The Buckeyes and Jackrabbits were tied at 43 after a first half in which both teams made nine 3-pointers.
Bates-Diop hit a trio of triples while scoring 17 points. Daum also had 17 points in the first half.
Ohio State last won a tournament game in 2015, when the Buckeyes topped VCU in Portland, Ore. They lost to Arizona two days later and missed the Big Dance the past two seasons.
The Buckeyes last lost in the round of 64 in 2014 when Dayton knocked them out en route to the Elite Eight.