West Ham 1 (Franco 90)
Wolves 3 (Doyle 28, Zubar 58, Jarvis 61)
Wolves took a massive leap towards Premier League safety following one of their best displays of the season as they ruthlessly put West Ham to the sword to avenge the opening day defeat at Molineux and record a first victory at Upton Park over The Hammers since 1978.
After six games with the same starting line up, Mick McCarthy made two changes with George Elokobi coming in for Stephen Ward at left-back, and Michael Mancienne in midfield for Adlene Guedioura.
Wolves kicked-off defending the end of Upton Park that housed around 1,500 travelling fans and they looked on as James Tomkins cleared an early cross from Matt Jarvis.
Kevin Foley was inches away from opening his goal account for the season in the eighth minute as he ran onto a headed flick from Kevin Doyle. After outpacing Fabio Daprela, Foley smashed an angled volley against the bar with the ball ricocheting to safety on the far side.
Home keeper Robert Green had to punch clear a Jarvis corner and Marcus Hahnemann had his first real taste of the action as he fielded a low drive from Scott Parker.
Julien Faubert cut into the box after a surging run down the right but his final shot lacked accuracy and was well wide of the far post.
Play was swinging from end to end and after another dangerous cross from Jarvis had been hooked clear, a driven centre from Faubert was deflected behind for a corner that came to nothing.
Green just beat Jarvis in a race for Doyle's through ball, but the keeper was beaten in the 28th minute as Wolves moved into a deserved lead.
Tomkins' attempted back pass to Green was intercepted by Doyle who drilled a low shot that went in off the inside of the far post.
Seconds after the game restarted, Mancienne was shown the yellow card after a late challenge on Alessandro Diamanti.
Hahnemann dived to save a Carlton Cole shot after Benni McCarthy had supplied a short pass on the edge of the box, and seconds later a low cross from Jarvis took a deflection before going behind off Matthew Upson.
Wolves should have been awarded a 35th minute penalty after Radoslav Kovac had clattered into Dave Jones just inside The Hammers box. The referee had a clear view of the incident but waved play on - an unbelievable decision.
A flowing Wolves move ended with a 25-yard drive from Jones that took a deflection as it flew narrowly wide.
Wolves had been the dominant team in the opening half but luck was with them in the 45th minute as Parker's shot hit the inside of the far post. The ball rebounded behind Hahnemann and back to Parker who had continued his run.
He rammed a cross back into the middle and Hahnemann saved on the line with Karl Henry completing the clearance.
Half-Time: West Ham 0 Wolves 1
The Hammers made a double switch at the start of the new half with Jonathan Spector and Junior Stanislas replacing Tomkins and Kovac respectively.
Valon Behrami challenge on Jarvis resulted in a free-kick to the left of West Ham's area. Jarvis took the kick himself but the ball went safely to the far side off the top of Ronald Zubar's head. Zubar then went into the book for a trip on Behrami.
McCarthy was well wide with a powerful header after Faubert had fired in a cross from the right, and Hahnemann had little difficulty in dealing with a long-range effort from Diamanti.
Wolves went two up in the 58th minute as Zubar scored his first League goal of the campaign. He ran onto a diagonal ball from Jones and smashed a first time shot inside the far post.
If the travelling supporters behind Green's goal were happy with Zubar's effort, they were positively delirious as Jarvis made it three just three minutes later.
Again Jones was the architect supplying a pass that Jarvis sprinted onto, bypassing two defenders, before beating Green with a low shot from the 18-yard line.
Doyle had to receive lengthy treatment after he had been caught on the back of the calf by Diamanti. Then both sides made changes - Guillermo Franco replacing McCarthy and, for Wolves, Ward went on for Jarvis.
In the 77th minute it took a superb save from Hahnemann to keep out a rising drive from Franco who had run into the area and stepped inside his marker.
Wolves made two changes in the final ten minutes with Greg Halford taking the place of Zubar and Guedioura for Mancienne.
In between the substitutions Hahnemann made another fine save - this time from Diamanti who let fly from 30-yards and in stoppage time the winger over narrowly wide although Hahnamann had his post covered.
With seconds remaining Franco grabbed a consolation goal when he beat the offside trap and lobbed the ball over Hahnemann after Behrami had threaded the ball through.
West Ham: Green, Parker, Cole, Kovac (Stanislas 45), Upson (capt), McCarthy (Franco 71), Faubert, Behrami, Tomkins (Spector 45), Diamanti, Daprela.
Unused subs: Stech, Ilan, Mido, Noble.
Wolves: Hahnemann, Zubar (Halford 81), Elokobi, Mancienne (Guedioura 86), Craddock, Berra, Foley, Henry (capt), Doyle, Jones, Jarvis (Ward 71).
Unused subs: Hennessey, Ebanks-Blake, Iwelumo, Milkijaš.
Bookings: Mancienne (29 - foul), Zubar (48 - foul).
Referee: P. Dowd.