First-half goals from Ben Pearson and Jordan Hugill gave Preston North End a richly-deserved victory over Aston Villa at Deepdale.
It was a third successive home win for North End and it stretched their unbeaten run to four games.
Pearson struck his first goal in PNE colours to open the scoring in the fifth minute, a lead which was doubled by Hugill before the interval.
The excellent Pearson was involved in that second goal too, winning possession in midfield and starting the move which ended in Hugill finding the net.
North End were all over a desperately disappointing Villa side in the first half.
And while Villa made more of a fist of things in the second half, throwing on big guns Ross McCormack and Rudy Gestede at half-time, the home side held them at bay with a strong performance.
The visitors did win a penalty in the five minute of stoppage-time but McCormack's spot kick was superbly saved by PNE keeper Chris Maxwell.
This was PNE's first win over Villa since 1969, although meetings between the clubs have been few and far between in the intervening four decades.
Lilywhites manager Simon Grayson had made one change to the side which had drawn 2-2 with Birmingham last Tuesday, Aiden McGeady returning to the side after being a late substitute at St Andrew's.
The formation switched from a 3-5-2 to 4-1-4-1, John Welsh playing a deep-sitting role in front of the back four, with McGeady, Pearson, Daniel Johnson and Callum Robinson across the midfield.
North End went in front inside five minutes, the ball breaking off a Villa defender into the path of Pearson on the edge of the box.
The midfielder took a touch, moved into the box and tucked a low shot past goalkeeper Mark Bunn as he came off his line.
Much of the first-half play belonged to Preston after that, a McGeady cross to the near post finding Robinson whose shot was deflected behind.
McGeady delivered the resulting corner into the middle where Alex Baptiste got up highest but headed wide.
An almighty scramble at the quarter-hour mark saw Johnson, Hugill - twice - and Robinson all have shots blocked.
Soon after that, a Robinson cross picked out Hugill at the back post but he sent his header too high.
A rare Villa attack saw left-back Aly Cissokho put in a centre which evaded both Jack Grealish and Albert Adomah in the box before going out of play at the far side.
Back at the other end, a PNE corner was cleared out of the box as far as Greg Cunningham who delivered the ball back into the middle, Hugill controlling before scooping a shot too high.
Preston's second goal arrived six minutes before the interval, Pearson wrestling possession off Ashley Westwood in midfield and driving forward.
His pass played in Johnson who was tackled in the box, the ball falling into the path of Hugill who finished from close range.
Villa made a double substitution at the break, introducing McCormack and Gestede into the action in place of Westwood and Grealish.
An early second-half chance fell Gestede's way, his 48th minute powerful header from Jordan Ayew's corner flying just over the top.
The Lilywhites appealed loudly for a penalty in the 57th minute when the ball appeared to strike a Villa arm to prevent a cross reaching Hugill but referee Peter Bankes waved play on.
In their next attack, Robinson's shot from just inside the box was parried behind by Bunn.
McGeady swung the corner over deep, Tom Clarke rising to loop a header goalwards, one which Bunn managed to pluck out of the air.
Villa's Albert Adomah drove a speculative shot high over the bar in the 75th minute as the visitors searched for a way back into the contest.
North End lost McGeady to what looked like a hamstring strain in the 82nd minute, the winger over-stretching when making a sliding challenge.
Robinson, who was lively throughout against his former club, saw a shot from the edge of the box catch a Villa boot and travel behind for a corner.
Five minutes into stoppage-time, Villa were awarded a penalty when Bailey Wright tugged back substitute Jordan Amavi.
McCormack stepped up to take it, Maxwell going the right way and diving to push it behind.
There was just time for the visitors to take the resulting corner before the final whistle went, sparking big celebrations in the home stands - and discontent among the 5,400 travelling Villa supporters.
Three times during the game, they chanted 'you're getting sacked in the morning' in the direction of their manager Roberto Di Matteo.
PNE: Maxwell, Baptiste, Clarke, Wright, Cunningham, Welsh, McGeady (Huntington 82), Pearson (Browne 90), Johnson, Robinson, Hugill. Subs (not used): Makienok, Gallagher, Doyle, Pringle, Lindegaard.
Villa: Bunn, Hutton, Elphick, Chester, Cissokha (Amavi 81), Westwood )Gestede 46), Jedinak, Adomah, Grealish (McCormack 46), Ayew, Kodjia. Subs (not used): Baker, Richards, Tshibola, Steer.
Referee: Peter Bankes (Merseyside)
Attendance: 17,696 (5,421 away)