Elliot Stroud gav Mjällby ledningen i den 19:e minuten. Han löpte in bakom Hampus Skoglund och satte bollen kallt i hörnet.
Paulos Abraham kvitterade bara tre minuter senare. Skoglund hittade in till Abraham som satte 1–1.
Strax innan paus tog Mjällby tillbaka ledningen. Jeppe Kjaer hittade Jacob Bergström i straffområdet som satte 2–1.
Slutminuterna blev kaotiska. Hammarby ville ha straff när Abraham ramlade i straffområdet. Han fick ingen straff utan en varning.
Minuten innan hade Mjällbys Viktor Gustafson blivit utvisad efter att ha dragit Nikola Vasic i håret. Tio minuters tillägg följde.
– Det är få förunnat att vinna en enda titel i sin karriär. Nu har Mjällby AIF vunnit två, säger Tom Pettersson till Viaplay.
Matchen spelades på Strawberry Arena inför rekordpublik och startade en halvtimme försenat på grund av pendeltågsstrul.
Förra året tog Mjällby sitt första SM-guld. Nu kan klubben från Blekinge lyfta sin andra stora trofé på lika många säsonger.