Besiege

meaning: to surround a place, especially with an army, to prevent people or supplies getting in or out:

usage: The town had been besieged for two months but still resisted the aggressors .