Arsenal looked set for a rare home defeat until Kolo Toure's header went in off defender Matthew Taylor and goalkeeper Mark Schwarzer four minutes from time.
Former Arsenal forward Jeremie Aliadiere marked his return from a four-match ban by scoring against his old club after 25 minutes with a volley into the roof of Manuel Almunia's net.