La bataille d'Arbedo a eu lieu le 30 juin 1422 entre le duché de Milan et la Confédération suisse et s'est terminée par une victoire milanaise.
En 1419, les cantons suisses d'Uri et d'Unterwald rachètent la ville fortifiée de Bellinzone à la maison de Sax mais ne parviennent pas à la défendre adéquatement. Lorsqu'ils rejetèrent une proposition milanaise d'acheter Bellinzona en 1422, une force milanaise sous le commandement du condottiero Francesco Bussone da Carmagnola attaqua et vainquit la garnison suisse et occupa la ville. Une tentative suisse de reprendre Bellinzone avec le soutien d'autres cantons, dont Lucerne et Zoug, a conduit à la bataille dans le village d'Arbedo, à 3 km (1,9 mi) au nord de la ville.
Les Suisses étaient principalement équipés de hallebardes et ont d'abord réussi à repousser deux charges de cavalerie milanaises. Carmagnole fit alors monter ses arbalétriers sur les flancs suisses et ordonna à ses hommes d'armes de mettre pied à terre et de combattre à pied avec leurs lances qui dépassaient les hallebardes.
Les Milanais ont forcé les Suisses à revenir sur une colline voisine, mais l'apparition d'une bande de butineurs, que les Milanais pensaient à tort être des renforts, a sauvé les Suisses d'une défaite totale. Lorsque la force milanaise s'est retirée pour se reformer, les Suisses se sont retirés du champ de bataille, les deux camps ayant subi de lourdes pertes.
Dans une tradition historiographique zougoise, le porteur de la bannière cantonale, Peter Kälin, fut tué, et la bannière fut reprise par son fils, qui fut tué à son tour. La bannière a été sauvée par un certain Hans Landwing, et a ensuite été perdue contre les Français. La victoire a assuré Bellinzone et la Léventine pour le duché. De plus, le Duché a regagné le Val d'Ossola, ainsi les Suisses ont perdu tous leurs gains territoriaux. La défaite a longtemps découragé l'expansion suisse vers le lac Majeur. Cependant, c'est cette défaite à Arbedo qui a conduit les Suisses à augmenter le nombre de piquiers dans leurs armées.