Gyldenløve ankret opp med galeiflotiljen, men et første angrep på to av skansene den 12. juli mislyktes. Nordmennene ble drevet tilbake med tap av 48 døde og 211 sårede. Neste dag ble det oppført batterier, som tvang svenskene til å forlate en av skansene. Fra skansen kunne Marstrand beskytes, og 19. juli ble det gjort landgang ved selve byen, som ble erobret sammen med enda en skanse. Nå sto bare citadellet Karlsten tilbake. Nordmennene heiste to kanoner opp på en klippe, og kunne dermed skyte hull i citadellets tårn. Kommandanten tilbød seg da å overgi festningen mot fri avmarsj. Dette ble innvilget.