Alexandre Lacazette scored a late equaliser as Mikel Arteta’s side produced a stunning comeback at the London Stadium.
Arsenal responded through own goals from Soucek and Craig Dawson, one in each half, before Lacazette’s late header.
The result means West Ham miss the chance to move into the top four while Arsenal moved up to ninth in the table.
West Ham were the better team from the start and opened the scoring after 15 minutes when Michail Antonio set up Lingard on the edge of the box to fire the ball into the top corner.
The hosts doubled their lead two minutes later when Lingard took a quick free kick with Arsenal players not facing the ball and Bowen’s strike went under goalkeeper Bernd Leno.
West Ham grabbed a third after 33 minutes after Soucek got on the end of Antonio’s header from close range.
Arsenal responded well and got back in the game before the break when Lacazette’s shot was deflected in off Soucek.
Lacazette almost scored a second for Arsenal two minutes into the second half but Issa Diop cleared his strike off the line.
The visitors did score another just after the hour mark when Dawson smashed Calum Chambers‘ cross into his own net.
West Ham should have grabbed a fourth goal after 76 minutes but Antonio hit the post from close range.
Arsenal made him pay for that miss as Lacazette converted Nicolas Pepe‘s cross moments later to equalise late on and earn a point.