COLUMBUS, Ohio (AP) -- William Buford scored a career-high 29 points and capped his night with a pivotal dunk in the final minute to power No. 3 Ohio State past hot-shooting Purdue 87-84 on Tuesday.
The win was Ohio State's 39th in a row at home -- since losing to Purdue two years ago at Value City Arena.
Buford scored 21 points in the second half to carry the Buckeyes (21-3, 9-2 Big Ten) while All-America Jared Sullinger and point guard Aaron Craft were on the bench with foul trouble. He scored seven straight points for Ohio State as it took the lead for good, then had a dunk with 39 seconds left that sealed it.
D.J. Byrd, averaging 6.5 points a game, had a career-best 24 for the Boilermakers (15-9, 5-6), while Kelsey Barlow and Lewis Jackson each had 14 and Robbie Hummel added 13.
Sullinger had 18 points and Deshaun Thomas and Craft 13 added apiece for the first-place Buckeyes, who have won six straight and eight of nine.
No more than three points separated the teams for the entire second half until Buford went off down the stretch.
After a first half that featured brilliant outside shooting and sparkling passing, the last 20 minutes were dominated by physical play, lots of fouls and near hand-to-hand combat under the basket.
The Buckeyes finally got some traction with Sullinger and Craft on the bench.
Buford, the lone senior on the roster, was the triggerman.
With the score tied at 73 and 4:38 left, he swished a shot from the top of the key to give the Buckeyes the lead for good. At the other end, Barlow's shot was blocked by Ohio State's Sam Thompson. Buford then hit another long jumper for a 77-73 lead.
After Hummel missed a 3-pointer, Buford took a pass in the backcourt from substitute point guard Shannon Scott, stepped back, and hit a high, arcing 3 to make it 80-73 with 2:54 left.
Purdue drew to five points on Jackson's drive through traffic at 1:53.
With 1:07 left, Sullinger went back to the bench after being hurt on a rebound attempt. Byrd, who was fouled on the play, missed the first but hit the second to make it 80-76.
Craft then hit a free throw before Buford tipped away a loose ball at the defensive end and raced the length of the court for a dunk with 39 seconds left to give Ohio State enough room to outlast two late 3s.
Purdue was coming off perhaps its worst game of the season, a 78-61 loss at home to Indiana. Coach Matt Painter said after that debacle that he was disappointed in his team's effort. He certainly wasn't after the close battle with Ohio State.
Both teams shot better than 60 percent from the field and from behind the arc in the first half. Ohio State was 14 of 22 (64 percent) to Purdue's 14 of 23 for 61 percent. On 3-pointers, the Boilermakers were 7 of 10 -- with Byrd making all 5 he attempted -- and the Buckeyes were 5 of 8 (63 percent).
Ohio State scored the first seven points only to have Purdue score the next seven. Ahead 24-23, the Buckeyes went on a 12-0 run with Craft scoring seven points.
But long-distance marksmanship bailed out the visitors. Ryne Smith hit a 3 before Jackson whizzed past a defender for a layup and Hummel was fouled by Sullinger behind the arc, hitting all three free throws to cap an 8-0 run and tie it at 38.