The Cornhuskers (9-8, 1-5 Big Ten), who ended a five-game losing streak, survived after squandering a 14-point first-half lead. They used a 16-5 run late in the second half to regain control and made 13 of their last 16 free throws to hold off the Buckeyes (15-4, 2-4).
It was Nebraska's first win in 16 games against ranked opponents and prompted the student section to pour onto the court after the final buzzer. The Buckeyes have lost four straight for the first time since 2007-08.
The Buckeyes beat Nebraska by 31 points on Jan. 4 and haven't won since.
Deverell Biggs added 11 points for the Huskers.
Nebraska overcame 17 turnovers and a couple of lulls to beat a Top 25 opponent for the first time January 2012. The Huskers committed turnovers on seven of their first nine possessions of the second half and went through a 6-minute scoring drought in the middle of the half before they closed strong.
Ross' finger roll gave Ohio State its last lead, at 46-45. The Huskers took the lead for good when Biggs stole the ball from Craft and went in for a layup with 4:29 to play.
David Rivers' two free throws made it a 10-point game, and the Buckeyes could never get back into the game because of Nebraska's strong free throw shooting at the end.
Nebraska led 34-25 after outscoring the Buckeyes 16-6 over the last 7:24 of the first half. Ohio State went 6 1/2 minutes without a field goal after Amedeo Della Valle's 3-pointer gave his team a 19-18 lead.
Shields scored seven points during the spurt, and Leslee Smith finished it when he swiped the ball from Amir Williams at midcourt and went in for a layup. Craft made a free throw to end an Ohio State scoreless streak of more than 4 1/2 minutes, and Ross made two free throws to cut what had been a 14-point deficit to single digits before halftime.
Ohio State got back into the game by outscoring the Huskers 18-2 over halftime, tying it and taking a 38-36 lead on layups by Craft.
Craft committed four turnovers against the Huskers and has 19 in the last four games.