Preston took the lead in the fifth minute when Simon Whaley, in the right channel, found Stephen Elliott and he was fouled in the box by Alex Bruce and the referee awarded a penalty.
Callum Davidson scored his fourth penalty of the season with a scuffed left-foot shot which goalkeeper Richard Wright guessed right and got a touch to, but it went underneath him to nestle in the bottom left corner of the net.
Ipswich equalised in the 31st minute when a left-wing assist by Luciano Civelli fell to Tommy Miller and he beat Preston central defender Youl Mawene in the penalty box and scored into the bottom left corner of the net.
Four minutes before half-time Preston made it 2-1 when captain Paul McKenna lobbed the ball forward and his assist was headed home by striker Jon Parkin from inside the penalty box for his sixth goal of the season.
Preston had lost central defender Sean St Ledger who limped off with an injury just before that goal to be replaced by substitute Eddie Nolan.
Preston made it 3-1 in the 60th minute when Ross Wallace on the right wing assisted with an inswinging left-foot corner. Elliott hit a half-volley from inside the six-yard box into the top left corner of the net.
Ipswich pulled a goal back almost immediately when Preston substitute Nolan fouled Kevin Lisbie outside the box and ex-Preston loanee Miller curled the resultant 25-yard free-kick around the wall into the top right corner for his sixth goal of the season.
Ipswich hit the post ten minutes later when Lisbie cut in from the left and fired a shot against the inside of the post.
The referee chose to book seven players, but Preston held on for a valuable three points in their play-off push.