The hosts took the lead a minute after the break when Carlton Cole tapped home after Wojciech Szczesny parried Kevin Nolan's drive, but West Ham then missed three gilt-edged chances to double the advantage in the next 10 minutes.
Szczesny denied Matt Jarvis when the winger was through on goal, before Joey O'Brien headed Mohamed Diame's cross wide and Cole stabbed Razvan Rat's bouncing delivery off target.
They were made to pay for their wastefulness as Theo Walcott scored twice in three minutes midway through the half to turn the result around, before substitute Lukas Podolski fired in a third 11 minutes from time as West Ham dropped to second from bottom in the Premier League table.
After the match, Allardyce claimed his side had missed a glorious opportunity to claim a vital three points.
"We let it slip through our fingers today," he said.
"We had three golden chances after we scored and we've paid the price because what Arsenal do is take more and more chances.
"It was either going to be us getting the second or they'd score and that's exactly what happened sadly.
"It was a great opportunity to beat a top of the league team and unfortunately we didn't take it and paid the price."
West Ham now face West Brom at home on Saturday before a trip to Fulham on New Year's Day, and Allardyce is in no doubt as to the enormity of those fixtures.
"Our big games are West Brom and Fulham in the next two games," he said.
"It's about performing like that against those clubs which gives you a chance of winning the game.
"We've got to believe we will convert the chances as we did in the home game against Fulham.
"West Brom is becoming a must win game so we've got to go out without being over anxious or over ambitious because if we start leaving back doors open and conceding too many goals we're going to have to score more."
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.