Jamie Vardys skarpa avslutning från ett blixtnedslag gav Leicester huvudrollen på 18 minuter - men han skickades sedan iväg efter att ha fått ett andra gult kort för dykning när han trasslade med Angelo Ogbonna tidigt i andra halvlek.
Domare Jonathan Moss gjorde sig ännu mer impopulär när han gav West Ham ett straff med sex minuter kvar. Det hade drivit och dra i båda straff områden men han bestämde sig för att straffa Wes Morgan för att dra tillbaka Winston Reid i ett hörn.
Analys: MOTD2 pundits på domarens "mind-boggling inkonsekvenser"
Byte Andy Carroll slitsade hem för att avsluta Leicesters körning på 574 minuter utan att ingå ett ligamål och Aaron Cresswell såg ut att ha öppnat dörren till Foxes titel rivaler Spurs med en fantastisk vänsterfotad finish två minuter senare.
När spelet gick in i skada tid, Moss producerade en annan kontroversiellt beslut när han pekade på platsen en gång efter Carroll gjorde den mörka kontakten med Jeff Schlupp.
West Ham kände tydligt att Moss hade jämnat upp saker efter tidigare beslut till deras fördel, men Ulloa var inte orolig eftersom han tog chansen att säkra vad som skulle kunna vara en viktig punkt - även om Leicester kommer att vara utan Vardy för nästa helg hemmamatch med Swansea.
Återupplev aktionen från King Power Stadium
Leicesters fans firade i slutet innan de vände sin ilska på domare Moss - även om det var hans mycket tvivelaktiga beslut som gjorde att de kunde tjäna den punkten i slutet.
Psykologiskt, denna punkt kan vara avgörande eftersom en förlust kan bara ha gett några tvivel och med Spurs bara lite mer wiggle rum gå in i deras spel på Stoke på måndag.
Det betyder att Leicester sista Premier League nederlag är fortfarande att sista minuten förlust på Arsenal på Alla hjärtans dag och deras andar kommer att lyftas av det sätt på vilket de förtjänat en punkt när det verkade säkert att de skulle hamna tomhänt.
Domare Moss omgavs av spelare från båda sidor och eskorterades från fältet av förvaltare till hån från hemmafansen vid sista visselpipan.
Moss händelserika andra halvlek började efter 56 minuter när han straffade Vardy för simulering då han föll teatraliskt under en utmaning från Ogbonna. Efter att ha gett Vardy ett gult kort kände han sig tvungen att ge en sekund.
Vardy gjorde det mesta av kontakten och riskerade straff. Och han har anklagats för att göra detta innan den här säsongen. Åsikten delades men många tyckte att Moss hade rätt.
För West Hams straff, det var utan tvekan dra och trycka mellan Morgan och Winston Reid - så återigen Moss hade rättfärdigat.
Svårigheten, inkonsekvensen, är att liknande beteende hade pågått i båda straffområdena hela eftermiddagen utan straff - så varför bestämde Moss att det var dags att straffa det?
Alltför ofta verkar dessa beslut godtyckliga, vilket visades när Ogbonna släpade Huth till golvet ännu mer obarmhärtigt några minuter senare och ingen foul gavs.
Slutligen, i skada tid och med en atmosfär av kaos uppslukande spelet, Moss pekade på platsen för minsta beröring från Carroll på Schlupp. Det var otroligt hårt och Hammers kände tydligt Moss hade straffat dem för att kompensera för tidigare beslut som fattats mot Leicester.
Det är ett tufft jobb - vilket övergreppet riktade domarens väg mot slutet visade.
Inte så mycket som det kan ha varit om Ulloa inte gjorde mål i slutet, men de kan utöva tryck och flytta till inom fem poäng Leicester om de vinner på Stoke.
Leicester har åtminstone poängen i väskan men Mauricio Pochettino och hans spelare kommer bara att känna dörren är ajar, även om de vet tid och spel håller på att rinna ut.
Leicester boss Claudio Ranieri: "Det var en mycket tuff match. Vi hade tur i början när de rörde vid båda inläggen. Efter det gjorde vi ett bra mål och vi hade en möjlighet att avsluta matchen i början av andra halvlek.
Mediauppspelning stöds inte på den här enheten
"Efter att ha skickat iväg det ändrade vår match.
"Jag talade aldrig om domarens beslut. Två gula kort, det är allt.
"Vår prestanda 11 v 11 och 10 v 11 var fantastisk."
West Ham manager Slaven Bilic: "Det var en bra fotbollsmatch. Vi visade beslutsamhet, karaktär och kvalitet. Vi vände på spelet. Vi var farliga, och efter att ha skickat iväg dominerade vi totalt spelet.
Mediauppspelning stöds inte på den här enheten
"Efter vårt andra mål trodde jag att vi hade gjort tillräckligt för att vinna spelet, kanske vi kunde ha klarat av mer tid bättre när det gäller att hålla bollen men de tog risken.
"Det var extremt svårt för domaren, men det var inget straff alls."
Leicester - minus den upphängda Vardy - är hemma till Swansea nästa söndag. Hammers är värd för Watford på onsdag.
Matchen slutar, Leicester City 2, West Ham United 2.
Andra halvlek, Leicester City 2, West Ham United 2.
Mål!  Leicester City 2, West Ham United 2. Leonardo Ulloa (Leicester City) omvandlar straffet med ett högerfött skott till nedre högra hörnet.
Straff medgavs av Andy Carroll (West Ham United) efter en foul i straffområdet.
Straffet Leicester City. Jeffrey Schlupp drar ett brott i straffområdet.
Offside, Leicester City. Danny Simpson försöker en genom boll, men Leonardo Ulloa fångas offside.
Manuel Lanzini (West Ham United) vinner en frispark i den defensiva halvan.
Foul av N'Golo Kanté (Leicester City).
Försök missade. Emmanuel Emenike (West Ham United) höger fotade skott från utsidan av lådan missar till vänster.
Försök missade. Robert Huth (Leicester City) huvud från mitten av lådan missar till höger. Hjälpt av Christian Fuchs.
Foul av Andy Carroll (West Ham United).
Leonardo Ulloa (Leicester City) vinner en frispark i anfallshalvan.
Foul av Angelo Ogbonna (Väst Ham United).
Leonardo Ulloa (Leicester City) vinner en frispark på högerkanten.
Mål!  Leicester City 1, West Ham United 2. Aaron Cresswell (West Ham United) vänster fotade skott från vänster sida av lådan till övre högra hörnet.
Mål!  Leicester City 1, West Ham United 1. Andy Carroll (West Ham United) konverterar straffet med en vänster fotad skott till nedre högra hörnet.
Straffet West Ham United. Winston Reid drar ett brott i straffområdet.
Straff som medgavs av Wes Morgan (Leicester City) efter ett brott i straffområdet.
Hörnet, West Ham United. Förföljd av Wes Morgan.
Försök missade. Enner Valencia (West Ham United) höger fotade skott från mitten av lådan missar till vänster. Hjälpt av Cheikhou Kouyaté.
Försök missade. Cheikhou Kouyaté (West Ham United) huvudet från mitten av lådan missar till höger. Hjälpt av Aaron Cresswell med ett kors.
Enner Valencia (West Ham United) vinner en frispark i den defensiva halvan.
Foul av Jeffrey Schlupp (Leicester City).
Försök missade. Dimitri Payet (West Ham United) höger fotade skott från utsidan boxen är för hög från en direkt frispark.
Ersättning, Leicester City. Daniel Amartey ersätter Riyad Mahrez.
Wes Morgan (Leicester City) visas det gula kortet för en dålig foul.
Andy Carroll (West Ham United) vinner en frispark i anfallshalvan.
Foul av Wes Morgan (Leicester City).
Hörnet, West Ham United. Sammankallad av N'Golo Kanté.
Försök missade. Emmanuel Emenike (West Ham United) höger fotade skott utanför lådan är bara lite för hög.
Substitution, West Ham United. Enner Valencia ersätter Victor Moses.
Handboll av Aaron Cresswell (West Ham United).
Foul av Winston Reid (West Ham United).
Leonardo Ulloa (Leicester City) vinner en frispark i den defensiva halvan.
Försök missade. Manuel Lanzini (West Ham United) höger fotade skott utanför lådan är bara lite för hög. Hjälpt av Dimitri Payet.
Substitution, West Ham United. Manuel Lanzini ersätter Mark Noble.
Winston Reid (West Ham United) träffar rätt inlägg med en högerfotad skott från mycket nära håll. Hjälpt av Dimitri Payet med ett kors efter ett hörn.
Hörnet, West Ham United. Förföljd av Robert Huth.
Ersättning, Leicester City. Leonardo Ulloa ersätter Shinji Okazaki.
Foul av Michail Antonio (Väst Ham United).
Leonardo Ulloas skada-tid straff räddade en punkt för Leicester i ett kontroversiellt möte med West Ham som Foxes gick åtta punkter klart på toppen av Premier League.