Tegen het einde van de Tweede Wereldoorlog werd de stad tot een vesting verklaard en de meeste burgers vluchtten of werden geëvacueerd
, met zo'n 4000 mensen die ervoor kiezen om te blijven. Begin 1945 was Marienburg het toneel van felle gevechten van de nazi's tegen het Rode Leger en werd bijna volledig verwoest. De strijd duurde tot 9 maart 1945. Na de militaire verovering van de stad door het Rode Leger verdween de resterende burgerbevolking; 1.840 mensen worden nog steeds vermist. In juni 1945 werd de stad overgedragen aan de Poolse autoriteiten die in april in de stad waren aangekomen en de stad omgedoopt tot de huidige Poolse naam, Malbork. De Duitse bevolking van Marienburg die niet was gevlucht, werd verdreven. Historische overblijfselen van de Duitstalige bevolking werden vernietigd.