Spór ten udało się załagodzić legatowi papieskiemu, który doprowadził do spotkania papieża z królem w Canossie w styczniu 1077. Henryk przez trzy dni publicznie pokazywał się w pokutnych szatach i prosił Grzegorza o wybaczenie i zdjęcie klątwy, czego papież dokonał 27 stycznia.

Pokój ten okazał się jednak krótkotrwały, ponieważ niemieccy książęta, zbuntowali się przeciw Henrykowi i mianowali antykrólem jego szwagra, Rudolfa Szwabskiego. Henryk natychmiast zwrócił się do papieża z prośbą o ekskomunikę Rudolfa i zagroził, że jeśli odmówi, król powoła antypapieża. Na tę groźbę, papież po raz kolejny ekskomunikował Henryka, zdjął z urzędu i obłożył klątwą (marzec 1080). Wówczas Henryk zwołał synod w Brixen i 25 czerwca 1080 odwołał Grzegorza i powołał na jego miejsce arcybiskupa Rawenny, Wiberta (później uznanego za antypapieża). Wkrótce potem Henryk wyruszył podbić Rzym i w 1083 zajął tzw. „miasto Leona”, a w rok później pozostałe dzielnice miasta. Wówczas kilkunastu kardynałów przeszło na stronę Wiberta – antypapieża Klemensa, który w 1084 koronował Henryka na cesarza rzymskiego. Z pomocą Grzegorzowi (broniącemu się w Zamku św. Anioła), przyszedł władca Normanów Robert Guiscard, który jednocześnie spustoszył miasto.