Everton 1 Arsenal 4:Arsenal weathered all manner of storms against Everton at Goodison Park but emerged with three points and safe passage back to the top of the Premier League after Manchester United were beaten by West Ham in London.
Both sides finished the game with 10 men after a second half that boiled over on a few occasions but produced four goals from the away side.
The first half was played amid torrential rain and Everton seemed to revel in it more than the visitors, taking the lead, once again, through Tim Cahill's poked finish from Mikel Arteta's corner.
Arsenal were scarcely afforded a chance in the first period as manager Arsene Wenger looked to be paying the price for leaving Emmanuel Adebayor on the bench in favour of Nicklas Bendtner and Eduardo Silva.
The gamble was partially successful after Eduardo's brace brought the Gunners back into the game before Bendtner was dismissed for a dangerous tackle on Andrew Johnson.
Arteta saw red for an elbow on Cesc Fabregas 10 minutes later, however, and two substitutes, Adebayor and Tomas Rosicky, sealed the win for Arsenal.
Everton opened the scoring when Ayegbeni Yakubu forced a corner from Kolo Toure with determined running, and when Arteta swung the flag-kick into the box Arsenal failed the deal with it. Tim Cahill, with his flying boot, and Yakubu with his head, both hurled themselves at the ball and it looked as if the Nigerian got the final touch, but TV reruns showed that Cahill's studs got the last connection.
Yakubu pulled an 18-yard shot wide after a neat Steven Pienaar flick, and Neville fired just over after Yakubu, Cahill and Hibbert had created the chance on the edge of the box.
Arsenal needed to get themselves back into the game quickly, and they did just that a minute after the break with the sort of approach that Wenger often criticises. Gael Clichy launched a 60-yard long ball from deep in his half and it flew straight to Eduardo racing into the box.
For a second it looked as if he had controlled the ball with his arm, but the connection was with the shoulder and he was able to turn and calmly strike the ball past Tim Howard.
Yakubu was gifted a chance soon afterwards but from a great position he nodded Joleon Lescott's right-wing cross over.
On 57 minutes Eduardo edged Arsenal into the lead. Another long ball, again a fleeting suggestion of a hand involved, but the Brazilian coolly beat Phil Jagielka, who slipped trying to turn. The Brazilian eased his shot just inside the post.
Everton sent on Andrew Johnson for Hibbert, and Arsenal replaced Eduardo with Adebayor, but between these substitutions the Gunners found themselves reduced to 10 men.
Bendtner, already booked, went through on Johnson's ankle on 74 minutes and received a second yellow from referee Martin Atkinson, although it could easily have been a straight red.
Four minutes later Arsenal got their third, another huge punt down field and this time a calamity between Joseph Yobo and Howard. Manuel Almunia launched his goal-kick, it bounced once inside Everton's half with Yobo waiting for Howard to deal with it as it approached the area.
Adebayor stuck out a long leg and kicked the ball at Howard, the rebound dropping for the substitute to run into an empty net.
Any plan for a last-ditch bombardment was over and on 84 minutes Everton also found themselves down to 10 ten men when Arteta's arm caught Fabregas in the face and the Spaniard hurled himself to the ground.
Fabregas was booked a minute later for felling Pienaar, and Flamini also saw yellow for failing to retreat from the free-kick. Fabregas was soon to be replaced by Rosicky.
And it was the Czech who fired home the fourth in injury time from the edge of the box.