David Edwards's second-half goal gave Wolves their first win since the opening day of the season and cast serious doubt on Manchester City's ability to challenge for the title without Carlos Tevez.
Roberto Mancini's side had taken the lead through an Emmanuel Adebayor penalty but were deservedly pegged back by Nenad Milijas before losing their way entirely.
Mick McCarthy's team are the only one in the Premier League yet to keep a clean sheet this season and from the first minute the concession of a goal looked inevitable as Adebayor and Mario Balotelli, making his first start since his move from Inter, initially looked fearsome.
Just as Wolves appeared to be finding their feet, David Silva's were taken from under him by Richard Stearman, whose clumsiness was punished with a penalty. Adebayor converted emphatically .
Rather than wilt, Wolves rebelled. The fightback was lead by Matthew Jarvis, a cut-price signing from Gillingham three years ago who gave further ammunition to those who say he deserves an England call-up. The equaliser came three minutes later. Micah Richards was only able to half-block a Jarvis cross and the ball broke to Milijas, who fired into the bottom corner from 16 yards.
Wolves deservedly took the lead in the 57th minute. Foley did his best Jarvis impression down the right only for his cross to be headed to the edge of the box, where Doyle fired goalward. Kolo Touré blocked that shot with difficulty but it rebounded to Edwards, who calmly slotted into the net.
In other natches, a lacklustre Chelsea beat Blackburn 2-1 after goals from Nicolas Anelka and Branislav Ivanovic. Arsenal had to wait until the 87th minute to find a winner against West Ham.