Chanserna var många. Obilor Okeke brände ett halvöppet mål i första minuten. Erik Botheim missade straff.
Sead Haksabanovic öppnade målskörden fem minuter in i andra halvlek. Han prickade krysset från distans.
– Jag har gjort några sådana i min karriär, så det är inget som förvånar mig längre, säger Haksabanovic.
I den 77:e minuten kvitterade BP. Anton Kurochkin hittade Kamilcan Sever som gjorde sitt första allsvenska mål. 19-åringen fick gott om yta.
Sedan kom avgörandet. García hoppade in och avgjorde sent för Malmö.
Trots missad straff och kvittering lyckades Malmö ta tre poäng på bortaplan.