Elliot Stroud gav gästerna ledningen redan i den tredje minuten. Ett distansskott som letade sig in bakom Samuel Brolin.
Kvitteringen kom efter en kvart. Aboubacar Keita nickade kraftfullt in 1–1 efter hörna.
Charles Sagoe Junior avgjorde i den 69:e minuten. Han hade mött stolpe fem minuter tidigare när Robin Wallinder räddade.
Kalmar arbetade sig in i matchen efter den tidiga smällen. Hemmapubliken hjälpte laget till tre poäng.
Mjällby spelar returmöte mot Lincoln Red Imps i Europamatchen på tisdag. Karl Marius Aksum roterar efter förlusten – fem förändringar i startelvan.
Toni Koskela lyfter hemmasuporten i klubbpodden efter matchen. Nu väntar BK Häcken borta.
Kalmar klättrar uppåt i tabellen medan Mjällby fokuserar på att avancera i Europa med 3–0 i bagaget från första mötet.