Wolves twice came from behind to salvage a draw against Norwich and edge two points clear of the relegation zone.
Attack-minded Norwich led when Andrew Surman headed in Wes Hoolahan's cross.
Wolves levelled when Stephen Hunt's shot was charged down, allowing Sylvan Ebanks-Blake to steer in from 10 yards.
Steve Morison crossed for substitute Simeon Jackson to tap in Norwich's second, but Ronald Zubar headed an equaliser from Nenad Milijas's corner.
It was a gripping, end-to-end contest with plenty of chances at both ends.
Norwich, who opted for a 4-3-3 formation with Hoolahan in support of strikers Grant Holt and Morison, enjoyed the better of the first half.
There was lots of neat, fast passing from the visitors, who showed why they are deservedly in the top half of the table, with Wolves' centre-backs being run ragged by the excellent Morison.
But the home side gave a far better account of themselves in the second period, going forward confidently and having the better of the chances after the break.
Wolves had started well as Hunt crossed from the right for the recalled Ebanks-Blake, whose shot was charged down by Russell Martin.
Paul Lambert's team then took the game to Wolves. Hard-working Morison was causing Roger Johnson lots of problems, most notably when he sped past him then fired in an angled strike that Wayne Hennessey pushed out.
DID YOU KNOW?
- Norwich's opener from Andrew Surman was their 11th headed goal this season - more than any other Premier League side
- The last 13 visits to Molineux have been unlucky for Norwich as Wolves are unbeaten in those games, including eight wins and five draws
- Striker Grant Holt was making his 100th appearance for Norwich
Norwich's adventure was rewarded when they took advantage of Wolves' high defensive line with a superb passing move. It ended in Hoolahan curling in a cross from the left and Surman timed his run well before powerfully heading in, against his former club, after 12 minutes.
The visitors continued to dominate but Wolves should have quickly equalised on 25 minutes as Stephen Hunt scooped over from eight yards.
Mick McCarthy's side levelled eight minutes before the break. Matt Jarvis created the opening by skipping past Kyle Naughton on the left then supplying Stephen Ward, who cut the ball back into the penalty area. Hunt had his shot charged down by Martin, allowing Ebanks-Blake to scramble the ball in.
Both sides probed at the start of the second half with Wolves attacking in a more cohesive manner as Steven Fletcher twice struck over from the edge of the 18-yard box.
Wolves enjoyed some fortune when Christophe Berra appeared to handle in the penalty area, but Norwich made amends for that disappointment by scoring again.
Hoolahan started the move, threading the ball out to the left for Morison, who again beat Johnson before crossing. Jackson, who had just come on as a substitute, initially mis-hit but eventually forced the ball in from close range.
But Wolves' response was swift as Milijas swung in a corner from the left and Zubar powered a header from eight yards into the roof of the net.
There was almost a repeat when Milijas again delivered a left-sided corner, but Johnson headed wide.
The final stages were enthralling. Jarvis fired through a long ball for Fletcher, who finished from eight yards but the strike was correctly ruled offside. Then there was another great chance for Norwich as Hennessey blocked Morison's close-range shot.
Norwich keeper John Ruddy saved his side in the dying seconds with a fine save from Adam Hammill's point-blank header.
Wolves manager Mick McCarthy: "It was exciting, captivating and excruciating at times. I think we dominated the second half. Irrespective of the goals we've conceded, we should have won with the amount of chances we created.
"My players always give every ounce of effort. I love my players for that. It shows what they're about, coming back from behind twice.
"The linesman got the offside decision right. I'll have to go in and apologise to him."
Norwich manager Paul Lambert: "It was a bit frustrating at times - to take the lead and go 2-1 up then draw. But I'm delighted with the way that we played. There don't seem to be any dull games involving us.
"The goals we're conceding are not great but we're doing everything we can to stay in the league.
"We were still trying to go gung-ho at the end. But I don't want to get admired and get relegated. I'd rather play ugly and stay in the league."
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +2:30
Close range header by Steven Fletcher misses to the right of the target.90:00 +2:09
Free kick awarded for a foul by Steve Morison on Roger Johnson. Wayne Hennessey takes the direct free kick.90:00 +1:43
Nenad Milijas produces a right-footed shot from just outside the box that goes wide left of the target.90:00 +1:31
Adam Hammill takes a shot. Save made by John Ruddy.90:00 +0:16
The assistant referee flags for offside against Steven Fletcher. Free kick taken by John Ruddy.89:13
The referee blows for offside. Indirect free kick taken by Stephen Ward.88:18
Inswinging corner taken from the left by-line by Adam Hammill.87:00 Substitution
Substitution Elliott Bennett comes on in place of Wesley Hoolahan.86:11
Marc Tierney gives away a free kick for an unfair challenge on Adam Hammill. Direct free kick taken by Nenad Milijas.84:45
Corner taken by Nenad Milijas from the left by-line, Headed effort from deep inside the penalty area by Roger Johnson misses to the left of the goal.82:10
Corner from the left by-line taken by Andrew Surman, clearance by Stephen Ward.81:01
The assist for the goal came from Nenad Milijas.81:01 Goal scored
Goal! - Ronald Zubar - Wolves 2 - 2 Norwich Ronald Zubar finds the net with a headed goal from close in. Wolverhampton 2-2 Norwich.80:43
Corner taken left-footed by Nenad Milijas,79:41 Substitution
Substitution Sylvan Ebanks-Blake goes off and Kevin Doyle comes on.78:07
Simeon Jackson takes a shot.77:52
The referee blows for offside against Steve Morison. Indirect free kick taken by Christophe Berra.77:11
Karl Henry takes a shot. Blocked by Zak Whitbread.75:41
Steve Morison provided the assist for the goal.
Goal! - Simeon Jackson - Wolves 1 - 2 Norwich Simeon Jackson grabs a goal from inside the six-yard box low into the middle of the goal. Wolverhampton 1-2 Norwich.74:48 Substitution
Substitution Stephen Hunt leaves the field to be replaced by Adam Hammill.74:06 Substitution
Substitution Simeon Jackson is brought on as a substitute for Grant Holt.74:06 Substitution
Substitution Bradley Johnson comes on in place of David Fox.73:08
Russell Martin takes a shot. Wayne Hennessey makes a save.72:54
Outswinging corner taken by David Fox.72:36
Wesley Hoolahan takes a shot. Blocked by Christophe Berra.72:27 Booking
Booking Russell Martin goes into the book.71:23
Sylvan Ebanks-Blake takes a shot. John Ruddy makes a save.69:16
Wesley Hoolahan takes a shot. Wayne Hennessey makes a save.68:16
Matthew Jarvis takes a shot. Save made by John Ruddy.66:41
Steven Fletcher has shot on goal from just outside the area which goes wide of the right-hand upright.66:21
Shot from outside the box by David Fox misses to the left of the goal.64:08
Corner from the left by-line taken by Andrew Surman, free kick awarded for an unfair challenge on Roger Johnson by Steve Morison. Wayne Hennessey takes the direct free kick.63:34
Effort from a long way out by Stephen Hunt goes wide right of the target.60:37
Foul by Grant Holt on Ronald Zubar, free kick awarded. Direct free kick taken by Karl Henry.59:39
Andrew Surman takes a shot. Save made by Wayne Hennessey.58:41
Grant Holt is ruled offside. Wayne Hennessey takes the indirect free kick.58:10
Steven Fletcher is caught offside. John Ruddy restarts play with the free kick.56:39
Free kick awarded for an unfair challenge on Marc Tierney by Stephen Hunt. John Ruddy takes the free kick.55:56
Grant Holt is caught offside. Wayne Hennessey takes the free kick.54:35
Corner taken right-footed by David Fox, clearance by Roger Johnson.52:39
Grant Holt takes a shot. Wayne Hennessey makes a save.50:44
Outswinging corner taken by Matthew Jarvis from the left by-line, Kyle Naughton makes a clearance.49:34
Free kick awarded for an unfair challenge on Stephen Hunt by Grant Holt. Free kick taken by Wayne Hennessey.47:25
Effort from the edge of the area by Steven Fletcher goes wide of the left-hand upright.45:21
The referee blows for offside against Sylvan Ebanks-Blake. Free kick taken by John Ruddy.45:01
The referee gets the second half underway.45:00 +2:04 Half time
Half Time The whistle is blown to end the first half.45:00 +0:34
Andrew Surman takes a shot. Save by Wayne Hennessey.44:28
The assistant referee flags for offside against Grant Holt. Wayne Hennessey takes the indirect free kick.43:32
The referee blows for offside against Sylvan Ebanks-Blake. Free kick taken by Russell Martin.42:09
Outswinging corner taken by Andrew Surman.41:58
David Fox takes a shot. Save made by Wayne Hennessey.40:56
The offside flag is raised against Matthew Jarvis. Kyle Naughton takes the direct free kick.39:03
Steven Fletcher produces a header from inside the area that goes over the bar.38:30
Matthew Jarvis takes the free kick.38:30 Booking
Booking The referee books Kyle Naughton for unsporting behaviour.38:20
Kyle Naughton concedes a free kick for a foul on Stephen Ward.36:46
Stephen Hunt provided the assist for the goal.36:46 Goal scored
Goal! - Sylvan Ebanks-Blake - Wolves 1 - 1 Norwich Sylvan Ebanks-Blake grabs a goal from inside the six-yard box low into the middle of the goal. Wolverhampton 1-1 Norwich.36:42
Stephen Hunt takes a shot. Russell Martin gets a block in.35:02
Grant Holt takes a shot. Blocked by Christophe Berra.34:13
Sylvan Ebanks-Blake produces a right-footed shot from inside the area that goes over the bar.32:56
Free kick awarded for a foul by Andrew Surman on Stephen Hunt. Wayne Hennessey takes the free kick.32:21
The official flags Sylvan Ebanks-Blake offside. John Ruddy takes the indirect free kick.31:35 Booking
Booking Stephen Hunt is shown a yellow card.29:46
Steve Morison gives away a free kick for an unfair challenge on Roger Johnson. Wayne Hennessey restarts play with the free kick.29:10
John Ruddy restarts play with the free kick.29:10 Booking
Booking The referee cautions Ronald Zubar for unsporting behaviour.28:37
Ronald Zubar challenges Grant Holt unfairly and gives away a free kick.26:59
Wesley Hoolahan produces a left-footed shot from just outside the box that goes wide left of the goal.25:49
Unfair challenge on Matthew Jarvis by Kyle Naughton results in a free kick. Direct free kick taken by Matthew Jarvis.24:24
Steve Morison takes a shot. Save made by John Ruddy.23:43
Effort from deep inside the area by Stephen Hunt clears the bar.23:36
Sylvan Ebanks-Blake takes a shot. Save made by John Ruddy.22:06
Roger Johnson concedes a free kick for a foul on Grant Holt. David Fox takes the free kick.20:55
Russell Martin fouled by Steven Fletcher, the ref awards a free kick. John Ruddy restarts play with the free kick.16:30
Andrew Crofts takes a shot. Christophe Berra gets a block in.13:16
Andrew Surman takes a shot. Wayne Hennessey makes a save.11:46
Wesley Hoolahan delivers the ball,11:40
The assist for the goal came from Wesley Hoolahan.11:40 Goal scored
Goal! - Andrew Surman - Wolves 0 - 1 Norwich Andrew Surman grabs a headed goal from deep inside the penalty area. Wolverhampton 0-1 Norwich.9:34
Outswinging corner taken by David Fox, clearance by Steven Fletcher.9:22
Steve Morison takes a shot. Save by Wayne Hennessey.7:12
Andrew Surman takes a shot. Save by Wayne Hennessey.6:20
The referee blows for offside against Steven Fletcher. Indirect free kick taken by John Ruddy.3:48
Sylvan Ebanks-Blake takes a shot. Blocked by Russell Martin.3:24
Free kick awarded for a foul by Marc Tierney on Stephen Hunt. Nenad Milijas restarts play with the free kick.2:21
Steve Morison is caught offside. Free kick taken by Wayne Hennessey.1:40
Grant Holt fouled by Stephen Hunt, the ref awards a free kick. David Fox takes the direct free kick.0:41
Foul by Grant Holt on Roger Johnson, free kick awarded. Wayne Hennessey restarts play with the free kick.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers