Cameron Archer scored 12 minutes into his Preston debut after coming off the bench
Preston dented West Brom's hopes of automatic promotion with victory in a scrappy Championship encounter.
Emil Riis Jakobsen poked Preston in front from almost on the goalline after Greg Cunningham's ball into the box took a deflection off Kyle Bartley.
Debutant Cameron Archer headed in the second from close range after David Button parried Cunningham's cross.
Albion failed to register a shot on target as they lost at home in the league for the first time this season.
But, for delighted Preston boss Ryan Lowe, who went to salute the travelling fans at the end, it was a great night as his side bounced back from their first defeat under him at Swansea on Saturday.
Johnstone not selected over 'internal issue'
To add to an already unsettled mood of fans' discontent at The Hawthorns, Albion went into the game without England goalkeeper Sam Johnstone.
He was due back after a three-game ban but he was left out over an "internal issue" by under-fire Baggies boss Valerien Ismael, who also revealed that he will not be considered for selection for Saturday's trip to Millwall.
- Relive Preston's win at West BromIsmael blames time-wasting opponents
The taking of all three points - Preston's first at The Hawthorns since the days of only two points for a win in the old Division Two back in September 1973 - was built round a fine hard-working, defensive performance which lifted them two places in the table to 13th.
Albion had rallied late on against Peterborough on Saturday to score three times in the last 11 minutes for a 3-0 win.
But, once on-loan Aston Villa striker Archer had marked his debut with his first league goal, there never looked likely to be a repeat of that sort of finale from a limp Albion attack, badly missing injured New Year's Day signing Daryl Dike.
West Bromwich Albion boss Valerien Ismael told BBC Radio WM:
"We deserve all the criticism for that. It was a poor team performance. I agree with all the boos.
"We have no excuses. We were never in the game. We deserved to lose. When you put in a performance like that, you have to accept it.
"We didn't put in the energy or effort to win that game."
On Sam Johnstone's absence:
"We had an issue internally. It is solved now but that is the reason he wasn't in the squad and won't be on Saturday but after that he will be back."
- Line-upsMatch StatsLive Text
Line-upsWest Brom
Formation 3-4-2-1
25Button21Kipré5Bartley3Townsend2Furlong8Livermore27Mowatt20Reach11Diangana18Grant10Phillips
- 25Button21KipréSubstituted forGardner-Hickmanat 45'minutes5Bartley3TownsendBooked at 78mins2FurlongBooked at 49mins8LivermoreSubstituted forMolumbyat 73'minutes27Mowatt20Reach11Diangana18Grant10PhillipsSubstituted forRobinsonat 56'minutes
Substitutes
- 7Robinson14Molumby16Clarke29Gardner-Hickman36Palmer40Faal41Fellows
Preston
Formation 3-4-1-2
12Iversen2van den Berg5Bauer16Hughes44Potts18Ledson4Whiteman3Cunningham8Browne19Riis Jakobsen9Evans
- 12Iversen2van den Berg5Bauer16Hughes44Potts18LedsonSubstituted forMcCannat 83'minutes4WhitemanBooked at 48mins3Cunningham8Browne19Riis JakobsenBooked at 52minsSubstituted forArcherat 64'minutes9EvansBooked at 69minsSubstituted forMaguireat 73'minutesBooked at 90mins
Substitutes
- 6Lindsay13McCann15Rafferty21Archer24Maguire25Ripley31Sinclair
Referee:Keith StroudMatch StatsHome TeamWest BromAway TeamPrestonPossessionHome57%Away43%ShotsHome8Away10Shots on TargetHome0Away3CornersHome3Away4FoulsHome13Away19Live TextPost update
Match ends, West Bromwich Albion 0, Preston North End 2.
90'+7'Full Time
Second Half ends, West Bromwich Albion 0, Preston North End 2.
90'+6'Post update
Corner, Preston North End. Conceded by Conor Townsend.
90'+5'Booking
Sean Maguire (Preston North End) is shown the yellow card.
90'+5'Post update
Foul by Adam Reach (West Bromwich Albion).
90'+5'Post update
Sean Maguire (Preston North End) wins a free kick on the right wing.
90'+4'Post update
Corner, Preston North End. Conceded by Alex Mowatt.
89'Post update
Offside, Preston North End. Greg Cunningham tries a through ball, but Sean Maguire is caught offside.
89'Post update
Foul by Jayson Molumby (West Bromwich Albion).
89'Post update
Greg Cunningham (Preston North End) wins a free kick on the left wing.
87'Post update
Offside, Preston North End. Andrew Hughes tries a through ball, but Cameron Archer is caught offside.
83'Substitution
Substitution, Preston North End. Alistair McCann replaces Ryan Ledson.
82'Post update
Attempt missed. Callum Robinson (West Bromwich Albion) right footed shot from outside the box is too high following a corner.
81'Post update
Corner, West Bromwich Albion. Conceded by Benjamin Whiteman.
81'Post update
Attempt blocked. Karlan Grant (West Bromwich Albion) right footed shot from outside the box is blocked.
80'Post update
Callum Robinson (West Bromwich Albion) wins a free kick in the attacking half.
80'Post update
Foul by Patrick Bauer (Preston North End).
79'Post update
Grady Diangana (West Bromwich Albion) wins a free kick in the defensive half.
79'Post update
Foul by Greg Cunningham (Preston North End).
79'Post update
Attempt blocked. Alan Browne (Preston North End) right footed shot from outside the box is blocked.
Page 1 of 6rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
Source: bbc.com