Les tractations françaises
Conscients du danger, les députés catalans se rendent d'urgence à Paris et se présentent à la Convention pour demander l'envoi d'une armée. Cependant, leur demande est rejetée pour des raisons politiques internes, deux des cinq députés catalans étant du mauvais bord politique. Alerté par les responsables militaires locaux, le conventionnel Cassanyes sollicite l'envoi d'une armée auprès du Comité de Salut Public. Il rencontre Danton, qui lui donne carte blanche pour défendre la France et lui impose de retourner à Perpignan avec le titre de représentant en mission. Le 6 juillet 1793, il prend la route, accompagné d'une compagnie de canonniers et d'un bataillon d'infanterie. Il arrive à Perpignan le 15 et établit son campement sur une ligne allant de Cabestany à Orles.
La bataille du col de la Perche
En parallèle avec l'attaque du Vallespir et des Albères, les Espagnols lancent une seconde offensive par la Cerdagne. Progressant rapidement sur le plateau cerdan, ils prennent position entre Err et Sainte-Léocadie avec 6 000 hommes et 500 cavaliers. Le général espagnol De La Peña parvient même à s'emparer du col de la Perche début juillet.
Pendant ce temps, en plaine, les troupes du général espagnol Crespo avancent dans la vallée de la Têt. La stratégie consiste à faire progresser les troupes vers le Ribéral (Millas, Ille-sur-Têt) afin de pouvoir prendre en tenaille Perpignan en le contournant par l'Ouest, et de faire la jonction entre la plaine et la Cerdagne en gagnant Villefranche.
Début juin, Millas tombe face à l'ennemi, trop puissant. Face à cette attaque en Cerdagne, Dagobert sait que Mont-Libre, qui ne compte que 1 776 hommes, ne pourra pas résister. Il prend alors la tête de quelques bataillons et fait venir en Cerdagne 2 000 hommes par le col de la Quillane et 3 000 par la vallée de l'Aude. Dans la nuit du 27 au 28 juillet 1793, Dagobert, soutenu par Cassanyes, attaque les Espagnols au col de la Perche. Huit canons, 60 prisonniers et 258 cadavres sont abandonnés par le général De La Peña, qui est poursuivi jusqu'en Espagne. Le 28 août, Dagobert campe à Sainte-Léocadie et, le lendemain, entre à Puigcerdà. Il prend ensuite Bellver et pousse jusqu'à la Seu d'Urgell pour reconnaître les accès en Vallespir.
Devant la stratégie espagnole de Ricardos, le général en chef français De Flers ne réagit pas. Cassanyes se déplace rapidement pour juger de l'état de la résistance de Villefranche, le verrou du Conflent. La ville étant trop faible pour résister à l'ennemi, il retourne à Perpignan pour prendre 1 200 hommes, quatre pièces de canon et un mortier de 6 pouces, le tout sous le commandement du général Solboclair. À leur arrivée le 3 août, Villefranche est déjà assiégée. Ils se contentent alors de bombarder les assiégeants, mais sans succès, car le 4 août, la ville cède.
Crespo remonte ainsi la vallée sans rencontrer d'opposition et installe son campement sur les hauteurs de Mont-Libre (Mont-Louis). Inquiet de l'arrivée de cette nouvelle armée, Dagobert revient à Mont-Libre avec ses hommes le 4 septembre. Dans la nuit, il attaque le camp. La bataille se déroule au-dessus de Canaveilles et se solde par une victoire complète. Les troupes espagnoles se dispersent dans la Cerdagne ou redescendent dans la vallée pour fuir.
La bataille de Peyrestortes
Pendant ce temps, en plaine, Ricardos progresse. Il s'approche de Perpignan par le sud avec le gros de ses troupes et installe son quartier général à Trouillas, à la villa Llucia. Sa manœuvre de contournement prend forme. Il prend Rivesaltes début septembre, malgré une résistance acharnée des Français et... des échelles un peu trop courtes pour passer par-dessus les remparts de la ville. Un second campement espagnol est mis en place près de Peyrestortes le 10 septembre.
Face à lui, le camp principal des Français se trouve sur une ligne allant de Cabestany à Orles. Le général Aoust établit un deuxième camp du côté du Vernet pour faire face au camp de Peyrestortes. Par ailleurs, Cassanyes redescend rapidement de Cerdagne avec son armée et installe une force d'appui plus au nord, à Salses.
La bataille pour le contrôle de Perpignan est imminente. Le 17 septembre, les Espagnols lancent deux offensives. La première par le sud, à l'encontre du camp d'Orles, la deuxième par l'ouest, à Peyrestortes.
Sur Orles, Ricardos bombarde le campement à partir de 3 heures et demie du matin. Le gros des troupes espagnoles se déplace ensuite à Pollestres. C'est alors que les généraux français Dagobert, Barbantane, Pérignon et Poinsot attaquent. Les Français perdent 2 000 hommes, ainsi qu'un nombre considérable de prisonniers, mais l'ennemi recule. Cassanyes va alors à la rencontre du général en chef De Flers, resté en arrière. Ce dernier, peu enclin à la guerre, simule une étude de la stratégie à adopter. Cassanyes lui demande l'ordre de poursuivre l'attaque pour repousser les Espagnols le plus loin possible, mais De Flers, ne supportant pas l'idée qu'un non-militaire puisse avoir raison, refuse et reste seul en arrière, laissant ses troupes en attente plutôt que de profiter de la situation.
Sur Peyrestortes, le général Aoust parvient à arrêter la progression des cavaliers espagnols grâce à ses nombreux canons. Cassanyes, qui a fait le déplacement dès qu'il a appris l'attaque, lui propose de poursuivre les Espagnols avec les 4 000 hommes qui lui restent stationnés à Salses. Stratégiquement, la balance pencherait en leur faveur, et la décision fut prise. Cassanyes part alors à Salses chercher ses troupes.
Lorsqu'il arrive à Peyrestortes, c'est la nuit. Les troupes du général Aoust ont déjà engagé la bataille, mais se contentent de bombarder le campement. La bataille commence réellement dès le matin. Toute la journée, les forces françaises tentent de prendre la colline de Peyrestortes, sans succès, bien qu'elles prennent un peu plus de terrain à chaque fois. Alors que la journée s'étirait en longueur, Cassanyes attaque les Espagnols sur le flanc et de front avec ses troupes fraîches et parvient à enfoncer les lignes ennemies. L'armée espagnole est alors rejetée sur la Têt et doit se replier pour établir un second camp entre Ponteilla et Trouillas.
Cette bataille, qui marqua l'arrêt de la progression espagnole en Roussillon, a fait 600 morts côté espagnol pour 300 Français.