Gustav Lindgren avgjorde med två mål. Han sköt in 1-0 redan i den fjärde minuten och 3-1 i den 37:e.
Däremellan nickade Gabriel Busanello in ett självmål till 2-0 för Häcken i den 20:e minuten.
Malmö gjorde matchspänning när Busanello reducerade till 1-2 i den 24:e. Erik Botheim sköt in 2-3 i den 40:e minuten.
Men Häcken höll undan i andra halvlek. De är nu obesegrade efter sju omgångar med två vinster och fem kryss.
– Det var för lätt att göra mål på oss idag, sa Malmös tränare Miguel Angel Ramirez efter matchen.
– Vi måste försvara bättre, vi måste vara mer aggressiva över hela banan.
Lagkapten Mikkel Rygaard hade sagt före matchen att Häcken behövde bli mer noggranna i båda straffområdena. Det blev Malmö som fick lära sig den läxan.
6163 åskådare såg Häcken ta ledningen i toppen av Allsvenskan.