Elliot Stroud slog till tidigt för gästerna. Ett distansskott i den tredje minuten gav Mjällby ledningen.
Men Kalmar reste sig. Aboubacar Keita nickade in kvitteringen i den 18:e minuten efter hörna.
I den 69:e minuten avgjorde Charles Sagoe Junior. 2–1 till hemmalaget.
Mjällbys målvakt Robin Wallinder räddade ännu en gång från Sagoe Junior fem minuter tidigare. Den gången höll det inte.
Kalmar tog tre poäng och kunde tacka hemmapubliken som bidrog till en stark inramning enligt tränaren Toni Koskela.
Nästa utmaning väntar borta mot BK Häcken på Bravida Arena.