À la suite de la double élection d'octobre 1314 les deux rivaux se disputaient le titre royal. Le pape Jean XXII observait une scrupuleuse neutralité entre les partis. Il qualifiait les deux adversaires de « Roi élu » (latin : reges electi) et considérant que l'empire était vacant il avait nommé le roi de Naples Robert d'Anjou comme « vicaire » en Italie.
Frédéric, encouragé par ses précédentes expéditions, décida de rejoindre ses alliés, l'évêque de Passau et l'archevêque de Salzbourg, à Mühldorf. Leurs armées se réunirent le 24 septembre 1322, à proximité de Mühldorf, sur la rivière Inn. Frédéric y attendait en outre l'arrivée de nouvelles troupes, dirigées par son frère le duc Léopold Ier d'Autriche.
Bataille
La bataille ne se déroula pas comme prévu pour les Autrichiens. Les troupes de Léopold d'Autriche, attendues à Mühldorf, n'arrivèrent pas à temps. De son côté, Louis de Wittelsbach, qui avait signé une alliance avec Jean Ier de Bohême et le burgrave Frédéric IV de Nuremberg, pouvait compter sur une armée puissante. Le combat inégal tourna rapidement en faveur de Louis de Wittelsbach, qui fit un bon millier de prisonniers parmi les chevaliers autrichiens. Le duc Ferry IV de Lorraine, et Frédéric lui-même, furent capturés. Après trois années de négociations au cours desquelles Louis de Bavière a été excommunié par le pape Jean XXII avec qui il est entré en conflit, il doit relâcher Frédéric, qui renonce à ses droits en mars 1325. Mais comme il avait encore des partisans, Louis doit conclure un accord de partage avec lui le 7 janvier 1326 à Munich, Frédéric reste une sorte de roi honoraire en conservant ses états patrimoniaux jusqu'à sa mort en 1330.
Ni la maison de Wittelsbach, ni les Habsbourg ne purent finalement affirmer leurs revendications sur le titre royal, qui, après la mort de Louis, en 1347, passa de nouveau à Charles IV, de la maison de Luxembourg. La bataille de Mühldorf est aujourd'hui considérée comme l'une des dernières batailles ayant opposé des chevaliers sans armes à feu.