COLUMBUS, Ohio -- Ohio State's resiliency was too much for top-ranked Duke to handle.
Zed Key scored a career-high 20 points and Ohio State held No. 1 Duke scoreless for the final 4½ minutes, completing a rally from a 15-point second-half deficit to beat the Blue Devils 71-66 on Tuesday night.
E.J. Liddell hit two free throws with 1:06 remaining to give the Buckeyes (5-2) their first lead since early in the first half, and his jumper made it 69-66 with 16 seconds left. Duke freshman star Paolo Banchero missed a tying 3-pointer, and Cedric Russell got the rebound and closed it out at the free throw line. Ohio State fans stormed the court as time expired.
"I thought our ability to stay with it was really important," Ohio State coach Chris Holtmann said. "Players win games, and we had a number of guys make plays down the stretch."
The Blue Devils (7-1) claimed the top spot in this week's AP Top 25 poll -- a stay that could be brief -- after beating then-No. 1 Gonzaga in Las Vegas. Ohio State improved to 2-1 against ranked foes this year with its fourth straight game decided in the final minutes.
Liddell finished with 14 points and 11 rebounds for Ohio State, which beat the No. 1 team in the country for the second straight time on its home court. The Buckeyes knocked off Michigan State 80-64 on Jan. 7, 2018.
"We've had some really dramatic games here, and I don't think that's ending anytime soon," Holtmann said. "So if you think the tough games are over, we have another really, really challenge Sunday night [at Penn State]. That's the challenge in front of us right now. "
Wendell Moore Jr. led the Blue Devils with 17 points and Banchero finished with 14.
Duke led by 13 points at halftime and extended that advantage to 49-34 early in the second half. Moore's layup with 5:19 remaining made it 65-57, and Trevor Keels made a free throw with 4:29 left.
The Blue Devils didn't score again, missing their last six shots as Ohio State closed the game with a 12-0 run. Duke endured a 1-for-14 stretch earlier in the half, allowing the Buckeyes to draw closer.
"When not getting the stops, we weren't able to lengthen the lead a couple times," Duke coach Mike Krzyzewski said. "They just stayed right in there."
Ohio State took an early 13-7 lead but Duke responded with a 13-2 run. The Blue Devils shot 52.9% in the first half.
RED HOT FINISH
Despite multiple stretches of two-plus minutes without a score in the second half, the Buckeyes closed the game by making their last four free throws and three shot attempts, while Duke didn't land any field goals in the final 5:18.
"We really dug in on the defensive side of things," Russell said. "It just felt good to come out on top, especially at home."
RUSSELL HAS HIS MOMENT
Entering the night, Russell had scored just three points in his brief Buckeyes career since transferring from Louisiana.
On Tuesday, he more than quadrupled his total. Russell shot 75% from the floor and a perfect 3 of 3 from beyond the arc, including the 3-pointer that pulled the Buckeyes within two with 2:32 remaining.
"It was a bunch of emotions, but I didn't give up on myself," Russell said.
Ohio State committed 12 turnovers while forcing a season-low seven. The Blue Devils capitalized for 15 points off their extra possessions.
Duke: Moore and Banchero, Duke's leading scorers coming in, were solid, shooting a combined 11-for-29, but they came up empty when it mattered most.
"I thought we were worn out at the end," Krzyzewski said.
Ohio State: The Buckeyes had 12 turnovers and shot 50% (11 of 22) at the free throw line, areas they will have to clean up before beginning Big Ten play this weekend.
Duke: Hosts South Carolina State on Dec. 14.
Ohio State: At Penn State on Sunday.