A deflected Tomas Rosicky injury-time strike cancelled out Steven Pienaar's breakaway goal eight minutes from time.
Everton began the brightest and had the ball in the net after six minutes, but the effort was chalked off as Louis Saha was offside. Within two minutes he did beat Arsenal's offside trap but his shot was well over the bar.
The visitors were rewarded for their endeavour in the 13th minute, when Leon Osman rose to head in a corner from Landon Donovan that Denilson, stood on the line, could only help into the net.
The goal woke up the Gunners and they drew level through Denilson, who received a pass back from Eduardo on the edge of the area after some intricate play by the Gunners. The Brazilian's goalbound shot found the net, but only via a severe deflection off Osman that wrong-footed Tim Howard.
Phil Neville went close in the 39th minute with a cheeky chip from the right flank that beat Manuel Almunia but finished on top of the netting.
The second half saw the snow begin to fall and Arsenal came out with greater determination.
Saha continued to work had for Everton in attack and was causing the Gunners problems. A shot on the turn on 62 minutes was deflected just wide.
The swirling wind added to the cold and the conditions were very difficult, but it was the Toffees who seemed to be making the most of things.
Arsene Wenger brought on Rosicky for Aaron Ramsey in an effort to inject some impetus in the attack and Andrey Arshavin was inches away from connecting with a Bacary Sagna cross from the right in the 73rd minute.
Eduardo slid in to meet an Armand Traore cross from the left but the ball bounced over his feet and then a fierce shot from Denilson was deflected high and wide.
Everton elected to sit back and hit the Gunners on the counter-attack for most of the second half and the tactic worked.
With eight minutes to go and Arsenal committed forward, Pienaar broke from his own half, racing on to a ball from Tim Cahill towards the home goal before lifting the ball over Alumia to put Everton back in the lead.
Another similar chance followed a minute later, but the Arsenal keeper this time managed to block the shot from James Vaughan.
Wenger's substitutions paid dividends again as Rosicky scored in added time to level the scores. The Czech Republic international was played in by Abou Diaby and his shot looped over Howard off Lucas Neill.