Match ends, Preston North End 3, Norwich City 1.
Goalkeeper Declan Rudd inspired Preston to a third victory in four matches to knock Norwich City off the top of the Championship table.
The Canaries had not lost away from home since August, with just two defeats in their previous 26 league fixtures.
But they were second best as they trailed 2-0 at the break and despite a vastly improved start to the second half, a Preston side managed by former Norwich boss Alex Neil stood firm before clinching a memorable win.
Ben Davies put the hosts ahead inside two minutes and an energetic, expansive first-half display was rewarded when Gallagher added the second from the penalty spot.
The visitors wasted a glorious chance to pull a goal back when Marco Stiepermann's spot-kick was brilliantly saved by former Norwich keeper Rudd, but they recovered to seize control after the interval.
Relentless away pressure failed to produce a goal and Sean Maguire's classy finish made it 3-0 to as good as seal victory.
Teemu Pukki's 21st league goal of the season brought some cheer for the away fans, but could not stop Leeds replacing Norwich as the second-tier leaders thanks to their 2-1 win over Swansea.
Gallagher's sweet delivery from the right flank left Davies with a simple task of heading home the opener from close range and that set the tone for a bustling home display.
Rudd then made the first of a number of fine saves, making a superb stop at the feet of Pukki as the Finn raced through one-on-one.
But soon after a fabulous first-time strike by Brad Potts from the edge of box smashed against the bar, Preston doubled their lead when Gallagher's spot-kick just about beat Tim Krul after Darnell Fisher was fouled.
Ben Pearson looked to have given City a way back into the match with a full-blooded lunging challenge on Onel Hernandez, but Rudd dived to his right to keep out Stiepermann's spot-kick - the fifth penalty Norwich have missed from six this season.
Rudd also made excellent saves to twice thwart Pukki and also kept out Hernandez before Maguire reacted quickest to fire in a third Preston goal after Alan Browne's long-range shot had crashed against the bar.
Pukki's fine finish across goal came deep into stoppage time and posed no threat to stopping Preston extending their unbeaten run to six matches.
Norwich drop to second, but are now just two points ahead of Sheffield United in third, following their 1-0 victory over Middlesbrough.
'We did what we needed to' - what they said
Preston manager Alex Neil told BBC Radio Lancashire: "Norwich are the type of team that come out and get up against you leaving a lot of spaces and gaps behind them.
"In the second half there were spells where we had to be behind the ball and make it difficult for them, let them try and break us down, get the ball and then hit them on the counter which worked really well.
"We did what we needed to do to win the match and we deserved to win the match. And if anything we probably should have scored another goal."
Norwich manager Daniel Farke told BBC Radio Norfolk: "We didn't start on the front foot. It was also a bit unlucky because we conceded a free-kick that wasn't a free-kick, but we should have defended the situation.
"Preston are in really good shape and it is difficult. Their penalty was a complete joke. It was never a penalty and then we missed a penalty, which was a good height for the goalkeeper. The penalty is a crucial situation and you must use it.
"We had 22 shots on goal and created plenty of chances. They had four shots on target and scored three goals. We did not deserve to lose, but it was one of those games."
Line-ups
Preston
Formation 4-2-3-1
- 1RuddBooked at 90mins
- 2Fisher
- 14Storey
- 6Davies
- 16Hughes
- 4PearsonBooked at 32mins
- 12GallagherSubstituted forJohnsonat 61'minutes
- 29BarkhuizenSubstituted forNmechaat 67'minutesBooked at 71mins
- 8Browne
- 44Potts
- 24MaguireSubstituted forStockleyat 78'minutes
Substitutes
- 3Earl
- 5Clarke
- 11Johnson
- 13Crowe
- 18Ledson
- 20Stockley
- 45Nmecha
Norwich
Formation 4-2-3-1
- 1Krul
- 37AaronsBooked at 90mins
- 6ZimmermannBooked at 36mins
- 4Godfrey
- 12Lewis
- 27Tettey
- 19TrybullSubstituted forRhodesat 45'minutes
- 17Buendía
- 18StiepermannSubstituted forMcLeanat 73'minutes
- 25HernándezSubstituted forPasslackat 84'minutes
- 22Pukki
Substitutes
- 11Rhodes
- 23McLean
- 24Passlack
- 31Hanley
- 32Srbeny
- 33McGovern
- 36Cantwell
- Referee:
- Geoff Eltringham
- Attendance:
- 11,280
Match Stats
- Possession
- Home39%
- Away61%
- Shots
- Home11
- Away23
- Shots on Target
- Home4
- Away10
- Corners
- Home3
- Away8
- Fouls
- Home13
- Away13
Live Text
Post update
Full Time
Second Half ends, Preston North End 3, Norwich City 1.
Post update
Foul by Jordan Rhodes (Norwich City).
Post update
Ben Davies (Preston North End) wins a free kick in the defensive half.
Booking
Declan Rudd (Preston North End) is shown the yellow card.
Booking
Maximillian Aarons (Norwich City) is shown the yellow card.
Goal!
Goal! Preston North End 3, Norwich City 1. Teemu Pukki (Norwich City) left footed shot from a difficult angle on the left to the bottom right corner. Assisted by Jordan Rhodes with a headed pass.
Post update
Ben Godfrey (Norwich City) wins a free kick on the right wing.
Post update
Foul by Lukas Nmecha (Preston North End).
Post update
Delay over. They are ready to continue.
Post update
Delay in match Lukas Nmecha (Preston North End) because of an injury.
Post update
Kenny McLean (Norwich City) wins a free kick on the right wing.
Post update
Foul by Lukas Nmecha (Preston North End).
Substitution
Substitution, Norwich City. Felix Passlack replaces Onel Hernández.
Post update
Attempt missed. Brad Potts (Preston North End) right footed shot from the centre of the box is close, but misses to the left. Assisted by Lukas Nmecha.
Post update
Attempt missed. Emiliano Buendía (Norwich City) left footed shot from outside the box misses to the right.
Post update
Foul by Emiliano Buendía (Norwich City).
Post update
Lukas Nmecha (Preston North End) wins a free kick in the attacking half.
Post update
Offside, Norwich City. Jamal Lewis tries a through ball, but Jordan Rhodes is caught offside.
Post update
Foul by Onel Hernández (Norwich City).