Former Chelsea player Emerson Palmieri scored against his former club to earn West Ham a point and increase the pressure on Blues boss Graham Potter.
Chelsea fielded a new-look £200m forward line but, despite taking the lead, were once again frustrated and have won just once in seven Premier League matches.
Joao Felix had already had a goal ruled out for offside when the Portugal forward fired visitors Chelsea ahead with a volleyed finish following a delicious assist by Enzo Fernandez, the £107m British transfer-record signing from Benfica.
Kai Havertz thought he had doubled the lead only for Chelsea's celebrations to be cut short by another offside flag, before West Ham equalised through Italy international Emerson's first Premier League goal.
The 28-year-old, who spent four years at Stamford Bridge, finished at the far post after Vladimir Coufal's cross was flicked on by Jarrod Bowen.
Chelsea, who have dropped 14 points in the last seven top-flight matches, carved out the better chances but could not make them count.
Noni Madueke was lively on his first start for the club since his £30.7m arrival from PSV Eindhoven and the 20-year-old forced a fine save from Lukasz Fabianski before the West Ham keeper kept out a free-kick by Felix.
In a dramatic finish, West Ham thought they had won it in the closing stages when substitute Tomas Soucek scored from close range but it was ruled out for offside - the third disallowed goal of the match.
This was another hugely frustrating day for Potter and Chelsea as strong appeals for an 89th-minute penalty were waved away after Soucek appeared to handle Conor Gallagher's shot inside his own box.
Chelsea continue to stutter under Potter
Chelsea, who have already been eliminated from both the FA Cup and Carabao Cup, resume their Champions League campaign against Borussia Dortmund on Wednesday on the back of a poor run of form.
They have taken just seven points out of the last 21 on offer and are well adrift in the race to finish in the top four, despite their heavy spending over the past two transfer windows.
In addition, they are without an away win in the league since October, a run of seven matches which included losses at Potter's former club Brighton & Hove Albion, Newcastle United and Fulham.
Chelsea had seven players under the age of 24 in their starting line-up at West Ham, including Madueke, Felix, Mudryk and Havertz.
There were encouraging signs as the young forward line caused problems in the first half but Chelsea were disappointing in the second half and have now scored just 23 goals in 22 league games.
They continue to stutter under Potter, who has won just five of his 16 top-flight matches since taking charge in September.
West Ham suffer Paqueta blow
When these two clubs previously met, at Stamford Bridge last September, Hammers boss David Moyes was left furious by a "scandalous" decision to rule out a 90th-minute West Ham equaliser.
Once again they had another late goal chalked off as Soucek's finish was disallowed but there were were few complaints from the Hammers bench this time as replays showed it was clearly offside.
Instead, it was Chelsea who were aggrieved at the end after appeals for a penalty after Soucek's handball were waved away.
After a long season of struggle, West Ham are showing signs of fight near the bottom of the table.
They head to Tottenham for another London derby on 19 February on the back of a four-match unbeaten run after following up a 1-1 draw at Newcastle with another gritty performance.
Whether Brazil midfielder Lucas Paqueta features against Tottenham remains to be seen.
The 25-year-old, one of West Ham's better performers this season, went off early with a suspected shoulder injury, and Moyes will hope it is not too serious as his side look to climb away from trouble.
Player of the match
EmersonEmerson
West Ham United
Squad number33Player nameEmerson
Squad number41Player nameRice
Squad number27Player nameAguerd
Squad number20Player nameBowen
Squad number1Player nameFabianski
Squad number5Player nameCoufal
Squad number22Player nameBenrahma
Squad number21Player nameOgbonna
Squad number9Player nameAntonio
Squad number2Player nameJohnson
Squad number28Player nameSoucek
Squad number12Player nameDownes
Squad number24Player nameKehrer
Squad number18Player nameIngs
Squad number11Player nameLucas Paquetá
Chelsea
Squad number11Player nameJoão Félix
Squad number5Player nameFernández
Squad number6Player nameThiago Silva
Squad number4Player nameBadiashile
Squad number24Player nameJames
Squad number31Player nameMadueke
Squad number1Player nameArrizabalaga
Squad number21Player nameChilwell
Squad number15Player nameMudryk
Squad number29Player nameHavertz
Squad number12Player nameLoftus-Cheek
Squad number19Player nameMount
Squad number23Player nameGallagher
Squad number22Player nameZiyech
Squad number32Player nameCucurella
Line-ups
West Ham
Formation 3-4-2-1
1Fabianski
24Kehrer21Ogbonna27Aguerd
5Coufal11Lucas Paquetá41Rice33Emerson
20Bowen22Benrahma
9Antonio
1Fabianski24Kehrer21Ogbonna27AguerdSubstituted forJohnsonat 80'minutes5CoufalBooked at 55mins11Lucas PaquetáSubstituted forSoucekat 14'minutes41Rice33Emerson20Bowen22BenrahmaSubstituted forDownesat 67'minutes9AntonioSubstituted forIngsat 67'minutesSubstitutes
2Johnson8Fornals10Lanzini12Downes18Ings28Soucek47Hegyi49AnangChelsea
Formation 4-2-3-1
1Arrizabalaga
24James6Thiago Silva4Badiashile32Cucurella
12Loftus-Cheek5Fernández
31Madueke11João Félix15Mudryk
29Havertz
1Arrizabalaga24James6Thiago Silva4BadiashileBooked at 64mins32CucurellaSubstituted forChilwellat 67'minutes12Loftus-CheekSubstituted forGallagherat 79'minutes5Fernández31MaduekeSubstituted forMountat 68'minutes11João Félix15MudrykSubstituted forZiyechat 67'minutes29HavertzSubstitutes
13Bettinelli14Chalobah19Mount21Chilwell22Ziyech23Gallagher27Fofana28Azpilicueta30ChukwuemekaLive Text
Match ends, West Ham United 1, Chelsea 1.
Second Half ends, West Ham United 1, Chelsea 1.
Ben Chilwell (Chelsea) wins a free kick in the defensive half.
Foul by Jarrod Bowen (West Ham United).
Foul by Ben Chilwell (Chelsea).
Jarrod Bowen (West Ham United) wins a free kick on the right wing.
Corner, West Ham United. Conceded by Ben Chilwell.
Attempt blocked. Conor Gallagher (Chelsea) left footed shot from outside the box is blocked. Assisted by Kai Havertz.
Foul by Reece James (Chelsea).
Flynn Downes (West Ham United) wins a free kick in the defensive half.
Delay over. They are ready to continue.
VAR Decision: No Goal West Ham United 1-1 Chelsea.
GOAL OVERTURNED BY VAR: Tomás Soucek (West Ham United) scores but the goal is ruled out after a VAR review.
Offside, West Ham United. Emerson tries a through ball, but Declan Rice is caught offside.
Foul by Hakim Ziyech (Chelsea).
Danny Ings (West Ham United) wins a free kick on the left wing.
Substitution, West Ham United. Ben Johnson replaces Nayef Aguerd because of an injury.
Delay over. They are ready to continue.
Delay in match because of an injury Nayef Aguerd (West Ham United).
Substitution, Chelsea. Conor Gallagher replaces Ruben Loftus-Cheek.
Our coverage of your Premier League club is bigger and better than ever before - here's everything you need to know to make sure you never miss a moment