Crewe Alexandra 1 PNE 2
Chris Sedgwick had rifled the visitors into a ninth minute lead when he shot from the edge of the penalty area into the bottom corner of the net after Patrick Agyemang had done well to hold off the Crewe defence.
Ashton missed a gilt-edged chance to equalise in the 23rd minute when he blasted over the bar after David Vaughan and Anthony Tonkin had set him up inside the box.
Vaughan then went close to scoring a wonder goal on the half-hour when he ran past four defenders before grazing the post with a shot.
Ashton volleyed into the side-netting and Steve Jones missed a good opportunity as Crewe tried to get back on level terms but it was Preston that extended their lead in the 58th minute when O'Neil headed in Eddie Lewis' free-kick at the far post.
Crewe substitute Luke Varney made an impact when he was introduced and he came close to reducing the arrears when he played a one-two with Kenny Lunt before shooting into the side-netting.
The game moved back towards the home side when O'Neil was red carded in the 78th minute. The centre-half was the last defender as Ashton tried to race on to a pass from Lunt before he was held back.
The resulting free-kick from Ashton flew wide but took a deflection and from the corner Richard Walker headed home to give Crewe a lifeline.
However, Billy Davies' side hung on for a crucial three points as they bid to move into the play-off picture.