El vecino Sacro Imperio Romano gobernado por Enrique IV invadió Hungría en 1063 para restaurar a Salomón en el trono. Hungría estaba entonces gobernada por Béla I, cuya tercera hija Helen se estaba casada con Zvonimir. Según el Chronicon Pictum, Croacia fue también atacada alrededor de 1067 por el ejército Carantinio de Ulric I, que ocupó parte de Kvarner y la costa oriental de Istria, la "Marca de Dalmatia". Como el rey croata estaba preocupado por la rebelión en Dalmacia, debido a la prohibición de utilizar la liturgia eslava, Zvonimir se vio obligado a buscar la protección de Salomón de Hungría. Géza I y Salomón ayudaron a Zvonimir a restaurar su autoridad en la "Marca de Dalmacia". Después de expulsar a los Carantinios de Croacia, el Ban Zvonimir envió regalos a Salomón como señal de agradecimiento. Poco después, en 1070, Zvonimir es mencionado como Ban de Croacia en cartas de Zadar, como sucesor de Gojko. La documentación croata de la época era emitida en nombre de ambos, el Rey Peter Krešimir y el Ban Zvonimir. A principios de 1075, Zvonimir llevaba el título de "Duque de Croacia", lo que le otorgaba el gobierno del norte de Dalmacia, y le convertía en asesor principal del rey y su heredero. Ese mismo año, los Normandos del sur de Italia, dirigido por el Conde Amico de Giovinazzo, invadieron Croacia y capturaron a un rey croata, cuyo nombre no es mencionado, y que probablemente era Peter Krešimir, que murió poco después. Hacia mediados de 1075, Zvonimir recuperó la lealtad de las ciudades costeras de Dalmacia que se habían pasado a los Normandos. Entretanto, otro candidato al trono, Stephen Trpimirović, que también había sido Duque de Croacia, abandonó su demanda y se retiró a la Iglesia de San Esteban bajo los pinos en las cercanías de Split, donde llevaría una vida de retiro. Esto abrió el camino del trono para Zvonimir, que contaba con el apoyo del Papa Gregorio VII.