Slaget ved Viborg

Bakgrunnen

Med seieren ved  Høje Taastrup på Sjælland ment Svein seg klar for å gjengjelde med et angrep vestover mot det jyske halvøya med sin hær. Men Knud hadde under den lokale striden mellom Valdemar Knudsen og Knud Henriksen om hertugdømmet Slesvig trukket inn grev Adolf av Holsten med besettelser i hertugdømmet Slesvig. Svein måtte vendte om fra Fyn med sin hær for å stoppe den holstenske intervensjonen. Slaget ved Ejderen ved Rendsburg sluttet med seier for danskene, men greven hadde dessuten felt sin rival som var gått i tjeneste hos Svein. Men felttoget til Jylland var stoppet.
Senere gjentok Svein felttoget vestover med en ny hær og nådde den største byen i Jylland, Viborg, som dessuten lå i et knutepunkt for handel og kommunikasjon. Fra sør går den oldgamle landeveien Hærvejen forbi de to sjøene på dalbunnen, Søndersø og Nørresø, på den andre siden på en bakke var det en markedsplass og et samlingssted for ting og kongshylling som hadde blitt Danmarks tredje største by i året 1150. I nærheten lå flere vannløp mot øst, vest og nord. Fra Limfjorden gikk en fjordarm, Hjarbæk Fjord sørover til bare ti kilometer fra byen. Med sin strategisk beliggenhet var Viborg nøkkelen for kontroll over landsdelen Jylland.
Knud måtte gjenerobre byen, som hadde overgitt seg frivillig til Svein, mot løfter om skattefrihet og samlet til seg en hær fra alle landsdeler i den vestlige del av Danmark som han deretter avanserte med til Viborg. Svein hadde allerede oppstilt sin hær i slagorden som hadde fått forsterkninger i form av væpnede borgere fra byen.

Slagoppstilling

En sjelden beskrivelse av formasjonene under dette danske slaget var gitt av krønikeskriveren Saxo Grammaticus som berettet at Knud hadde fått råd omkring rytteriet som hadde i tidligere slager lidd nederlag og hadde for lett med å rømme ved motgang. Rådet var å ta hestene fra rytterne av mindre kår og tvunget dem over i en fylking. Resten med konge Knud selv skulle observerte kampene. Om dette rådet var fulgte, er ikke besvart av andre kilder om slaget.
Svein på sin side satt opp en tradisjonell slagorden med skjoldmenn foran med steinslyngere, bueskyttere og endog armbrøstskyttere i midten. Men rytterne i Sveins hær ble oppstilt på fløyene av denne formasjonen av fotsoldatene for omgående fremrykkelse i hensikt på å ramme den fiendtlige hæren i ryggen. Den massive fylkingen av fotsoldatene var ment på å sinke ned det ventede angrepet fra Knuds hær så rytteriet på fløyene kunne angripe fra sidene.

Slaget

Oppdelingen av styrkene i Sveins hær var oppdaget av Knud som realisert viktigheten av å avgjøre kampene så tidlig som mulig så han stormet med hele vekten av sin hær mot fylkingen der den hadde fleste menn. Men fylkingen trakk seg tilbake tross stor tap uten å bryte sammen under angrepene fra Knuds menn til fots eller på hest. Fotsoldatene i Sveins hær sinket ned Knuds angrepene så rytterne på fløyene avansert fram og om mot fiendens rygg.
Den lille reserven av rytterne i Knuds hær sammen med hestene var overfalt og spredt vekk av Sveins rytterne som vendte om og angripe hæravdelingene på flankene og ryggen. Knud snudde hæren om så spyd og skjold var rettet mot alle retninger så rytterne var ikke i stand til å rette knusende angrep uten enorme tap i prosessen.
Svein vitende om denne risikoen foretrakk å foreta stadige angrep med mindre styrke der og dit så Knud kunne ikke rettet et effektiv motangrep samtidig som de ble trettet ut i løpet av den varme dagen. Denne taktikken virket, for Knuds folk ble gradvis tappet for krefter og motløst overfor de mer mobile rytterne som gang på gang forstyrre disse og hugget ned menn som hadde våget seg for langt ut av slagordenen. Til slutt måtte Knuds hær rykket mot den nærliggende byen med en baktropp som stoppet angrepene fra Sveins rytterne.
I byen spredte mennene seg i gatene og opp på bakken mot den andre siden av byen vekk fra Sveins styrkene som fulgte etter og straks omringet byen der de tok mange til fange. Knud flyktet vekk med restene av sitt følge til Ålborg.

Etterspillet

Svein sammen med  ribebiskop Elias kom til kirken i Viborg der de fikk melding om at et stort antall menn var holdt fanget i et av husene ved kirken. Ribebiskopen rådet kongen om å massakrere alle fangene, men dette villet ikke kongen, for han hadde lært at mildhet mot jyderne som sett i det forrige året og omkring borgere i Viborg var lønnsomt. Han lot fangene få kjøpe seg fri mot løsesum eller sverge troskap, to menn ble tatt ut og hengt for deres forbrytelser fremfor deres handlinger under stridighetene mot Svein. 
Fra Ålborg dro Knud over til sin stefar Sverker den eldre i Sverige. Senere måtte Knud seilte over til sin morbror Boleslav IV av Polen, men var nektet adgang til byene i landet Polen. Senere tok han kontakt med Henrik Løve, hertugen av Sachsen men hadde ikke hell med seg og fortsatt over til Hamburg. Der fant han en allierte, erkebiskop Hartwig I av Stade.