Kalmar kom till Bromma i skriande behov av poäng. Smålandslaget låg inför omgången på nedflyttningsplats med fyra poäng upp till kvalplats.
Brommapojkarna mönstrade en oförändrad startelva jämfört med lagets senaste match mot Norrköping.
Kalmar gjorde tre förändringar jämfört med förlusten mot Mjällby. Rasmus Sjöstedt, Robert Gojani och Abdussalam Magashy ersatte Vince Osuji, Max Svensson och den avstängde Romário.
I första halvleken ägde BP mest boll och hotade vid ett antal tillfällen.
I den 25:e minuten nådde Hlynur Freyr Karlsson högst på en hörna och styrde nicken mot mål. Samuel Brolin lyckades dock sträcka ut och göra en vass räddning.
Bortalaget från Småland hade svårt att skapa några farliga målchanser i den första akten. Det stannade på sin höjd vid nästan-lägen. Tillställningen var alltjämt mållös i halvlek.
- Vi har väl kontroll i försvarsspelet, men kanske behöver vaska fram lite fler målchanser, sa Kalmars lagkapten Simon Skrabb i halvtid till Max.
Skrabb fick även frågan om Kalmar inte behövde chansa lite mer i andra halvlek.
- Ja det är klart vi behöver tre poäng. Men man får göra det väl avvägt, det går inte bara att stöta hur som helst. BP är såpass skickliga så då spelar de ut oss, sa Skrabb
Det var dock fortsatt hemmalaget som höll i taktpinnen i den andra akten.
BP:s Ludvig Fritzson fick ett bra läge när mittfältaren fick nicka ostört framför mål men avslutet gick rakt på Brolin som kunde avstyra.
I den 65:e minuten fick hemmalaget ett lovande frisparksläge då Nikola Vasic revs ner av Lars Saetra utanför straffområdet.
Alexander Jensen stegade upp och förvaltade frisparken på bästa sätt. Danskens högeravslut satt klockrent i krysset och gav BP en välförtjänt ledning i matchen.
Med tio minuter kvar var Nikola Vasic nära att utöka när han fick ett bra läge framför mål men skyttekungens avslut gick över.
Från en Kalmar-hörna kom istället kvitteringen. Lars Saetra nådde högst och kunde nicka in 1-1 med vad som var Kalmars första avslut på mål i matchen.
Helt osannolikt var vändningen fullbordad tre minuter senare. Dino Islamovic löpte sig fri längs högerflanken och blev serverad en boll i djupled av Dion Krasniqi. Anfallaren var iskall i sin placering och 2-1 var ett faktum.
Det blev också slutresultatet och Kalmar fullbordade en galen vändning från ingenstans i matchens slutskede. Segern innebär att KFF är en poäng från Halmstad på kvalplats.
KFF:s tränare Stefan Larsson summerade känslorna efter matchen till Max.
- Såklart oerhört skönt med tre poäng och sättet vi kom tillbaka på i andra halvlek, säger Larsson och fortsätter;
- Vi behöver vinna fotbollsmatcher och det gjorde vi idag. Det var jävligt skönt.
Dino Islamovic fick efter matchen svara på om han trodde på en vändning i slutet på matchen.
- Nej men det är tufft, vi lägger där vi ligger och vi släpper in 1-0 och då känns det som att det börjar glida oss ur händerna. Men samtidigt, som striker vet man att, en chans och det är 1-1. Det var exakt det som hände. Lars var påpassligt framme där, säger Islamovic till Max.
Islamovic beskrev också sitt matchavgörande 2-1-mål.
- Det är en långboll, vi forcerar med tanke på att vi måste vinna, och jag vinner den första duellen. Dion får ner den bra och väntar på mig när jag kommer på en löpning. Jag får en jävligt bra passning och sen är det bara att vara kylig och lägga in den, säger Islamovic.
Matchvinnaren tror att Kalmar har vad som krävs för att stanna kvar i allsvenskan.
- Jag tycker vi har kvalitetsspelare och nu får vi en vinst och belöning som vi inte fick i andra matcher då vi också varit bra men inte fått utdelning. Vi ska försöka greja detta, säger Islamovic till Max.
Kalmar möter IFK Göteborg borta och Häcken hemma i sina sista matcher för året.
Kalmars konkurrenter i bottenstriden Värnamo och Halmstad spelar under söndagen.
IFK Värnamo spelar hemma mot Norrköping samtidigt som Halmstad spelar borta mot Häcken.
Startelvor:
Brommapojkarna: Hägg-Johansson; Bergvall, Abrahamsson, Karlsson, Jensen; Calisir, Martinsson Ngouali; Odefalk, Fritzson, Andersson; Vasic
Kalmar: Brolin; Karlsson, Saetra, Sjöstedt, Gersbach; Magashy, Gojani, Hallberg; Ring, Islamovic, Skrabb