West Lafayette, IN (SportsNetwork.com) - Mackey Arena is not the place to be if you're a ranked team.

Just ask Ohio State.

Rapheal Davis scored 20 points, Jon Octeus had 14 and Purdue knocked off the No. 20 Buckeyes 60-58 on Wednesday night in another Big Ten clash that went the Boilermakers' way.

It marked Purdue's third consecutive win over a top-25 team at home following victories over Iowa and Indiana last month.

It's the first time the Boilermakers have won three straight games against ranked opponents since 1979.

"We've been playing well," said Davis, "but we can get better in a lot of areas. That's encouraging to get these wins, but also to know we can get better."

Davis scored 12 of his 20 points in the second half and Octeus had 10 in the half as the Boilermakers (15-8, 7-3 Big Ten) extended their winning streak to four games overall.

A.J. Hammons added seven points, seven rebounds and seven blocks in the win.

Standout freshman D'Angelo Russell scored 20 points to lead Ohio State (17-6, 6-4), which had a three-game winning streak snapped.

The Buckeyes were coming off back-to-back home wins over nationally ranked Indiana and Maryland. The 80-56 win over then-No. 16 Maryland on Thursday was the largest margin of victory for an unranked Ohio State team over a ranked opponent.

Russell's 3-pointer gave them a 44-42 advantage with 8:47 left against Purdue, but the Boilermakers countered with a 10-0 run to take the lead for good.

Davis scored four points during the run, including a layup that was set up by Hammons' steal.

Ohio State was within one point after Russell made a pair of free throws with 6.4 seconds remaining. But Kendall Stephens made a foul shot for Purdue at the other end and the Buckeyes didn't have any timeouts remaining.

Russell hurried the ball past midcourt but his desperation 3 from near the left sideline was well short and may not have gone off in time anyway.

Purdue, which led 27-26 at halftime, has already surpassed last season's home win total of four in Big Ten play.

Game Notes

The Boilermakers snapped a six-game losing streak in the series ... Ohio State plays at Rutgers on Sunday ... Purdue is at Minnesota on Saturday.