Robbie Hummel had 15 points and eight rebounds and JaJuan Johnson added 12 for the Boilermakers (5-2). E'Twaun Moore, Purdue's leading scorer, went scoreless in the first half and finished with 10 points.
Duke outrebounded Purdue 49-29 and held the Boilermakers to 37 percent shooting. Purdue was just 2-of-13 on three-pointers.
Duke improved to 10-0 all-time in the ACC/Big Ten Challenge. It was the Blue Devils' first test against a ranked team this season.
Purdue lost to No. 6 Oklahoma in overtime last Friday in the NIT Season Tip-Off final.
Duke led 36-28 at halftime and opened the second half with a putback by Brian Zoubek and a three-pointer by Scheyer to push its lead to 41-28.
Johnson converted a three-point play, then made another basket to trim Duke's lead to 47-36, but the Blue Devils responded with an 8-0 run.
Moore finally scored on a fadeaway jumper with 10:46 to play, but Duke still led 55-38. Singler hit a deep three-pointer at the other end and ran back downcourt shaking his head and exuding confidence.
Purdue started to chip away at Duke's lead in the closing minutes. Moore scored two more baskets, and Hummel scored on a three-point play and a bank shot to cut Duke's lead to 62-49. A steal and layup by Moore made it 64-53 with just over three minutes left.
Purdue had a chance to cut Duke's lead to single digits, but Chris Kramer missed a three-pointer with just over two minutes to play, and Singler dunked on Duke's next possession to end Purdue's threat.
Purdue looked unusually sloppy in the opening minutes. The Boilermakers had several turnovers and missed their first six shots before Kramer made a fadeaway with 15:49 left in the first half that cut Duke's lead to 7-2.
Duke maintained control and a putback by Scheyer increased the Blue Devils' lead to 27-14 with about seven minutes left in the first half.
Nemanja Calasan helped Purdue rally. He made a three-pointer and a jumper from the free throw line, then two free throws in a run that cut Duke's lead to 34-27 just under three minutes before the half. The Blue Devils held on, and led by eight at halftime.