West Ham rivstartade och hade skaffat sig en 3–0-ledning redan efter en halvtimmes spel.
Jesse Lingard öppnade målskyttet efter en kvart och två minuter senare spelade han fram Jarrod Bowen. Därefter skickade Thomas Soucek in 3–0-målet.
Arsenal var i rejäl brygga, men upphämtningen skulle komma.
Soucek noterades för ett självmål när Alexandre Lacazettes skott styrdes via tjecken och in i mål. Sedan kom nästa smäll för West Ham.
I den 61:a minuten misslyckades Craig Dawson med en rensning och skickade in bollen i egen bur. Därefter klev Lacazette fram på nytt och räddade en poäng genom att nicka in 3–3-målet.
Arsenal ligger på nionde plats i Premier League och har 42 poäng efter 29 spelade matcher. West Ham är femma med 49 poäng.
Tottenham klättrar upp på sjätte plats i tabellen med sina 48 poäng och har häng på Europaplatserna efter att ha slagit Aston Villa med 2–0.
Vinicius Carlos fixade ledningsmålet i den 29:e minuten innan Harry Kane fastställde slutresultatet med en straffspark.