Karl var søn af Knud den Hellige og dronning Edel. Han flygtede sammen med sin mor til hendes familie i Flandern ved Knuds død i 1086. Han voksede op hos den fyrstelige familie i Flandern, mens hans mor tog til Sicilien som hustru til grev Roger af Bursa. I 1119 efterfulgte han sin fætter Balduin 1 som greve af Flandern. Karl kom i uoverensstemmelse med en rig flandersk familie ledet af kansleren Bertulf med det resultat, at han blev myrdet i St. Donatus Kirken i Brügge i 1127 ligesom sin far 41 år tidligere i Odense.
Han blev gravlagt i St. Donatus Kirken og blev æret som helgen. I 1794 blev de jordiske rester flyttet til den nærliggende kirke St. Saveur. I 1883 blev han helgenkåret, og i den forbindelse blev hans ben anbragt i et skrin, som nu findes i St. Saveur. Der findes også dele af ham som relikvier i Basilikaen for Det hellige Blod i Brügge.