COLUMBUS, Ohio (AP) -- No. 3 Ohio State had been rolling over intimidated opponents, winning by an average of 27 points a game.
Purdue, drilled by 17 points at home by rival Indiana in their most recent game, looked like road kill.
Instead, the Boilermakers were up to the task.
They went toe-to-toe with the Buckeyes from start to finish before faltering down the stretch in an 87-84 loss Tuesday night.
"For whatever reason, we're like a get-well card for people," Ohio State coach Thad Matta said of the Boilermakers' revived play.
From Purdue's perspective, it was an earth-shaking change in 72 hours.
"I thought we had a better fight to us," Purdue coach Matt Painter said. "Obviously, you're always going to look better when you make shots. We made a lot of shots."
The Boilermakers hit almost everything they took against the Big Ten's best defensive team, ending up shooting 52 percent from the field for the game after making 61 percent in the opening half. On top of that, they countered Ohio State's inside strength by making 11 of 19 3-point attempts.
D.J. Byrd, averaging 6.5 points a game, had a career-best 24 for the Boilermakers (15-9, 5-6 Big Ten), while Kelsey Barlow and Lewis Jackson each had 14 and Robbie Hummel added 13.
Purdue was coming off a 78-61 loss at home to Indiana. 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.
"I thought we played well enough to win," he said. "We just didn't get a couple of breaks at the end."
In the wake of that embarrassing home loss, Painter shook up his lineup and replaced Jackson and Ryne Smith with Anthony Johnson and Byrd. The move seemed to energize the Boilermakers.
"Ryne Smith and Lewis didn't deserve to start," Painter said. "I don't think I had five people that deserved to start. I know Byrd did. He's given us good effort. I thought Hummel gave us good effort (too)."
No more than three points separated the teams for the entire second half until William Buford, who led Ohio State (21-3, 9-2) with a career-high 29 points, 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 All-America Jared Sullinger and point guard Aaron Craft on the bench with foul trouble.
"Sometimes you have to find a way to win," Craft said. "And we did that tonight."
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.
Each team 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 by Byrd and Hummel.
Follow Rusty Miller on Twitter: http://www.twitter.com/rustymillerap .