William Milovanovic skulle rensa bollen i eget straffområde. Då sparkade han klumpigt ned inhopparen Malte Persson.
Rocco Ascone satte straffen säkert i den 92:a minuten. 1-1 blev slutresultatet på Gamla Ullevi.
Dödläge i paus. Men i den 52:a minuten bröt Gais det.
Frosti Thorkelsson hittade fram till Henry Sletsjøe som bredsidade in 1-0 bakom Tim Rönning.
Gais hade kontroll efter målet. Halmstads BK flyttade fram i slutminuterna utan att skapa farligheter. Tills Milovanovic klantade sig.
Stuart Baxter är tränare för Halmstad. Han beskrev lättnad och tacksamhet efter kvitteringen.
– En tung poäng för oss, säger han.
Baxter blandade ändå känslor under matchens gång. Han beskrev nerverna när Gais gjorde 1-0.
– Vi har släppt in så många mål i början av andra halvlek. Jag trodde jag skulle svimma av när vi gjorde det igen. Men jag är nöjd med hur vi svarar upp på det, säger han.
Straffkvitteringen snuvade Sletsjøe på hjälterollen. Gais-spelaren var självkritisk efteråt.
– Jag tycker att det är flera gånger under säsongen vi spelat för dåligt i slutet av matcherna. Vi blir fega och oorganiserade. Vi har bara oss själva att skylla, säger han.
Poängen var viktig i bottenstriden. Det var Halmstads sjunde poäng för säsongen. Laget har nu tre pinnar upp till Degerfors på kvalplats och ytterligare tre till IFK Göteborg på säker mark.
Gais huserar i mitten av tabellen. Laget kom senast från en seger mot Nordsjælland i Conference League-kvalet. Hemmamatchen mot jumbonlaget slutade alltså utan fullpoäng — på värsta tänkbara sätt.