The first meeting of the two sides for nine years saw Sam Allardyce's men grab just their second win of the season, plunging an already difficult campaign for Nuno Espirito Santo's side to a new low.
Pereira opened the scoring early on from the spot but the hosts led at half-time thanks to goals from Fabio Silva and Willy Boly.
The Baggies – picking up their first three points under Allardyce – then had Semi Ajayi head in and Pereira net again from 12 yards for what could be a turning point in their season.
An enormous boost in their survival fight while Wolves must be extra careful not to get dragged into it at the wrong end of the table themselves.
This was not a game high on quality, but Albion certainly had more grit and determination about them.
Wolves, meanwhile, are in trouble. Both sides had their poor moments at the back, but the the hosts were especially woeful.
Conceding two Pereira penalties and failing to deal with a long throw-in in the build-up to Ajayi's goal, it was an embarrassing defensive display.
Silva got a confidence-boosting goal but having led 2-1 at the break, Nuno's players then completely capitulated.
Now 12 without a clean sheet in the league, there are serious problems.
The Baggies, though, did what you have to do in derbies – put your bodies on the line and not give up.
Their best day of the season so far, without a doubt. Also undoubtedly Wolves' worst, perhaps of Nuno's tenure.
Wolves welcomed both Boly and Adama Traore back from injury, with the pair replacing Rayan Ait-Nouri and Morgan Gibbs-White in the side.
Pedro Neto, after picking up a knock in the defeat to Everton, also passed a late fitness test to start the long-awaited clash while Silva again got the nod up front.
Albion, meanwhile, were without first-choice goalkeeper Sam Johnstone – having tested positive for Covid-19 along with Matt Phillips.
That meant David Button was between the sticks while Grady Diangana missed out through injury and Conor Gallagher was suspended. Kamil Grosicki made his first top-flight start in almost four years.
The Baggies, it is fair to say, were not at full strength. However, they were the ones who took an early lead from the penalty spot.
Traore, trying to do too much, lost possession in a dangerous area before Boly caught Callum Robinson a second too late.
It looked as if the challenge might have been outside the box, but the VAR ruled it was just inside and Pereira made no mistake from 12 yards.
An extremely tight call but, ultimately, more sloppy defending from Wolves – conceding first for the ninth league game in a row.
From there, Nuno's pack created several openings. Almost straight after falling behind, Ruben Neves struck the wall with a free-kick.
Leander Dendoncker had three chances arrive in quick succession – blazing one high and wide, failing to connect properly with a header and then seeing a long-range strike gathered by Button.
There was also an unsuccessful appeal for a handball after Kieran Gibbs got in the way of a loose ball following Neto's inviting cross.
There was a need to be more ruthless in both boxes for Wolves, with Albion giving them a major let-off.
Grosicki's downward header fell right into the path of Robinson, who on the stretch was denied by Rui Patricio from point-blank range.
It had been an encouraging period for Allardyce's charges – defending fairly solidly and having their moments going forward. But old habits would rear their head before the break.
Unable to clear their lines on two occasions, Wolves gladly took advantage to turn things around and going into half-time ahead.
Silva, having barely been involved, kept his cool and slotted into the bottom corner after a clever back-heel from Boly – the £35million striker's first goal from open play coming at a crucial time.
And Boly soon wrapped up a topsy-turvy opening 45 minutes, pouncing on more indecision from the Baggies' backline.
The visitors, who saw Gibbs lash a volley wide in the dying seconds of the first period, continued to look vulnerable from set-pieces and Silva saw another attempt blocked.
Thankfully for Albion, though, the level of defending from Nuno's lot was utterly shocking.
Allardyce's outfit levelled from a long throw-in. Dara O'Shea hurled the ball into the box, Kyle Bartley flicked it on and Ajayi's header looped over Patricio. Far too easy.
Going from bad to worse, Conor Coady then tripped Robinson for yet another spot-kick which Pereira duly converted.
Scarcely believable stuff from the hosts, who swiftly made a couple of substitutions. The first of those appeared to be enforced, with Gibbs-White replacing Neves who let the pitch clutching his arm.
But the second was very noteworthy. Ait-Nouri was introduced and Coady the one hauled off, for the first time under Nuno.
Showing no signs of a knock, it may well be looked back upon as a watershed moment.
All Wolves' immediate thoughts were on finding an equaliser, while the Baggies brought on Hal Robson-Kanu for Grosicki and Darnell Furlong on for Pereira – going to a back five in an effort to see it out.
Patrick Cutrone came on for Joao Moutinho in Wolves' final change and spurned a golden opportunity to level the scores.
Falling perfectly for him in the box, he elected to shoot first time rather than take a touch – hitting it into the ground and just over Button's bar. Albion the deserved winners on derby day.
Wolves (4-3-3): Patricio; Semedo, Coady (Ait-Nouri, 64), Boly, Saiss; Neves (Gibbs-White. 59), Dendoncker, Moutinho (Cutrone, 79); Traore, Silva, Neto
Subs not used: Ruddy (gk), Hoever, Kilman, Vitinha, Shabani, Corbeanu
Goals: Silva (39), Boly (43)
Albion (4-4-1-1): Button; O'Shea, Ajayi, Bartley, Gibbs; Snodgrass, Livermore (c), Sawyers, Grosicki (Robson-Kanu, 69); Pereira (Furlong, 83); Robinson
Subs not used: Lonergan (gk), Peltier, Kipre, Ivanovic, Field, Krovinovic, Edwards
Goals: Pereira (pen 8, pen 56), Ajayi (52)
Referee: Michael Oliver (Northumberland)