Двадцать второго апреля стало известно, что генерал О’Доннелл близко и подошел уже на расстояние одного марша. Он двигался из Каталонии по левому берегу Сегре, тогда как город и осадные войска находились на правом. Сюше принял такие диспозиции, чтобы противостоять и внешнему и внутреннему неприятелю. Генерал Арисп остался у городского моста, по которому гарнизон мог сообщаться с идущей на помощь армией, и должен был сдерживать и гарнизон, и корпус О’Доннелла. Мюнье, расположенный чуть выше на Сегре, должен был тотчас перейти через реку и, когда неприятель приблизится к мосту, охраняемому Ариспом, атаковать его с фланга.
На рассвете генерал О’Доннелл показался на краю равнины Маргалеф, простирающейся влево от Сегре, и тотчас вступил в дело. Его войско возглавлял авангард из легкой пехоты и кавалерии, а сам он двигался справа и слева от дороги двумя колоннами общей численностью в десять тысяч человек. Это были лучшие войска Каталонии и Арагона. Едва заслышав огонь аванпостов, генерал Арисп вскочил на коня и с 4-м гусарским и двумя ротами 115-го и 117-го линейных без колебаний атаковал неприятельский авангард и опрокинул его далеко на равнину. Достигнутое преимущество позволило ему вернуться к городу, дабы сдержать гарнизон, который уже начал дебушировать с моста через Сегре под радостные крики жителей. Арисп со 117-м линейным атаковали гарнизон в штыки, оттеснили его на мост и вынудили вернуться в крепость.
Пока шли эти быстрые бои, дивизия Мюнье перешла через Сегре и выдвинулась на поле сражения. Генерал атаковал обе испанские дивизии во фланг, пройдя через равнину Маргалеф самым коротким путем, по диагонали. Его пехоте предшествовал 13-й кирасирский, единственный полк тяжелой кавалерии, служивший в Испании, численностью двенадцать сотен всадников, под командованием превосходного офицера полковника Эгремона. Когда противник оказался в пределах досягаемости, кирасиры построились в боевые порядки, поставив пушки на крыльях и угрожая флангу испанской армии. После артиллерийского обстрела, когда неприятельская кавалерия выдвинулась вперед, чтобы прикрыть свою пехоту, кирасиры атаковали ее галопом и опрокинули. Валлонские гвардейцы тотчас встали в каре, чтобы защитить, в свою очередь, кавалерию. Но кирасиры продолжили атаку и прорвали и опрокинули всех, кто пытался подражать примеру валлонских гвардейцев. Через несколько минут вынудили сложить оружие почти шесть тысяч человек. Остатки неприятельского войска со всех ног бежали к дорогам Каталонии, а французам досталось множество пушек, знамен и обозов.
После такой блестящей победы можно было не опасаться, что кто-то помешает осаде. Траншею открыли 29 апреля. Подкопные работы были трудны, но не из-за твердости почвы, а из-за разлившихся в окрестностях вод Сегре, дождливой весны и весьма неприятного артиллерийского обстрела из замка. В нескольких каналах устроили плотины, чтобы отвести воду от траншей, и, как могли, укрывались от огня из замка. Подкопные работы велись в направлении бастионов под названием Кармен и Мадлен. Когда 6 мая все батареи были поставлены и оснащены, начали обстрел. Французская артиллерия вела его поначалу очень живо, но сильно страдала от артиллерии замка: несколько орудий оказались разбиты. Атакующие вынуждены были приостановить огонь, поставить новые батареи и изменить направление огня старых. Одну из них поставили на левом берегу Сегре, дабы обстреливать городской мост и – рикошетом – атакуемые бастионы. Новые работы поглотили дни с 8 по 12 мая, а затем обстрел возобновили, на сей раз с полным успехом: полностью подавили артиллерию со стен крепости, а артиллерия замка делалась менее опасной по мере приближения к замку. Наконец, французы смогли приступить к пробитию бреши, чтобы сделать возможным штурм.
Генерал Сюше и полковник Аксо намеревались добиться одновременного падения города и замка, направляя осаду таким образом, чтобы оттеснить население в замок, где люди смогут продержаться не более нескольких дней. Для этого нужно было завладеть фортом Гардени или хотя бы его внешними укреплениями.
Вечером 12-го Сюше направил три отборные колонны в атаку на редуты Пилар и Сан-Фернандо и укрепление, которое связывало их с Гардени. Все три укрепления удалось захватить штурмом, и хотя сам форт Гардени не попал в руки французов, цель была достигнута, ибо окружающие укрепления не могли более служить убежищем населению. При этих действиях французы потеряли сотню, а неприятель – около четырех сотен человек.