Aston Villa battled back from 3-1 down to secure a point against Everton.
Marouane Fellaini gave Everton the lead when he slotted in Leighton Baines' cross before Tim Cahill headed in Steven Pienaar's corner.
John Carew slammed in to reduce the arrears, but Pienaar restored the two-goal advantage with a great 20-yarder.
James Milner smashed in a 25-yard free-kick before Gareth Barry completed the comeback from the spot after Joleon Lescott had fouled Stiliyan Petrov.
The 40,188 crowd were treated to a terrific thriller at Villa, although the first effort on goal did not arrive until the 17th minute when Phil Neville hit a cracking half-volley that Brad Friedel had to tip behind.
Two minutes later Everton were ahead when Baines picked out the distinctive mop-haired figure of Fellaini with a low ball from the left leaving the Belgian with a tap-in at the far post.
Villa, who going into the game had picked up just one point from 18, were under severe pressure as David Moyes' men, now with a taste for goals, piled forward looking for a second.
That arrived via the head of Cahill, who freed himself from the jostling in the area to nod in, at the second attempt, Pienaar's left-wing corner.
Mixed emotions for O'Neill after 3-3 draw
Villa came to life at 2-0 down and both Ashley Young and Milner began to use their pace to make space on their respective wings in order to deliver crosses for the goal-hungry Carew, who looked desperate to add to his eight goals in the league.
He managed to do just that shortly before half-time when Milner's delivery from the right found Barry who fed the ball into the six-yard for Carew to slam in.
The match had already been graced with a great deal of excitement, but there were more treats in store after the break.
Against the run of play early in the second half, Everton added a third when Pienaar collected Neville's pass, turned, then curled a magnificent effort from 20 yards.
There was better to follow. Less than two minutes later, Villa were awarded a free-kick after Cahill pulled back Barry. The former Newcastle midfielder Milner placed the ball about 25 yards out before rocketing an unstoppable shot past Tim Howard.
With their tails up yet again, Villa pressed forward looking for an equaliser and it came from the spot courtesy of reliable penalty-taker Barry.
Having had two penalty appeals turned down earlier, Villa finally got their wish when Howard Webb judged Lescott's high kick to have impeded Petrov.
Good team performance - Moyes
Barry smashed in his fifth penalty from five attempts this season.
Villa looked more likely to grab a winner in a manic final 15 minutes with Young going close with a low shot, Carew's header missing by inches and substitute Nathan Delfouneso forcing a save from Howard, but it somehow remained 3-3.
Friedel, Luke Young, Davies, Knight, Shorey, Milner, Petrov, Barry, Ashley Young, Agbonlahor (Delfouneso 54), Carew.
Subs Not Used: Guzan, Sidwell, Salifou, Reo-Coker, Gardner, Albrighton.
Carew 33, Milner 55, Barry 66 pen.
Howard, Hibbert (Jacobsen 65), Lescott, Jagielka, Baines, Osman, Neville, Cahill, Pienaar, Fellaini, Jo (Saha 81).
Subs Not Used: Nash, Van der Meyde, Castillo, Rodwell, Gosling.
Fellaini 19, Cahill 23, Pienaar 53.
Howard Webb (S Yorkshire).
BBC Sport Player Rater man of the match:
Everton's Tim Cahill on 7.8 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.