The Gunners went into the fourth-round clash with just one defeat to their name so far this season, away to Lens in the Champions League, but their unbeaten start domestically to the campaign came to a crashing halt as a much-changed side were turned over.
David Moyes' team did not register a single shot in the opening 45 minutes but they went in at the break with a narrow lead, after Ben White headed into his own net from Jarrod Bowen's corner to leave the visitors with work to do after the break.
It was instead more misery for Arsenal, who offered nothing as the match restarted to allow West Ham, who came into the match on a run of three straight defeats, to take complete control. Inside 20 seconds of the second-half, and with the Gunners having had kick-off, White was forced to clear the ball off the line.
The wait, though, for the second goal was not a long one for West Ham. Nayef Aguerd launched a ball over the top, Oleksandr Zinchenko was caught out and Mohammed Kudus was allowed to bring it down before firing beyond Aaron Ramsdale, handed a rare chance in goal, and into the far corner.
Two became three on the hour mark, effectively ending any hopes the Gunners had of mounting a comeback. White cleared a cross only as far as Bowen on the edge of the box, and he lashed a finish into the back of the net with the help of a slight deflection.
Mikel Arteta opted not to keep some of his first-team stars rested for the trip to Newcastle this weekend with Bukayo Saka and Gabriel Martinelli introduced just after that third goal and Declan Rice featuring off the bench on his return to West Ham.
Martin Odegaard was also called up in the closing stages and he netted a consolation with the final kick, finishing what was probably the visitors' best move of the game, but by then the damage was well and truly done.