Anthony Fera kicked three field goals for the Nittany Lions (6-1, 3-0 Big Ten), the last of them coming with 1:28 to play.
Purdue had a chance to tie the game with 8:08 remaining when Akeem Shavers scored on a 1-yard run that brought the Boilermakers within 20-18. Penn State then stopped quarterback Caleb TerBush short of the end zone on his 2-point conversion rushing attempt.
Penn State never trailed after Curtis Dukes scored on a 1-yard run with 4:48 to go in the first period.
A 14-yard scoring pass from TerBush to O.J. Rush in the third brought Purdue within 13-12, but the extra point was missed by Carson Wiggs.
The Nittany Lions then drove 60 yards in just four plays with Redd's 9-yard touchdown run giving Penn State an 8-point cushion.
Purdue has split its six games this season and is 1-1 in conference play.