Cadwallon grew up with King Edwin of Deira: at his father Cadfan's Royal Court in Gwynedd and also with King Salomon in Brittany, where they received a fine British education. The two were like brothers: but the brothers fought. A petty rivalry was born between them that, in manhood, turned to war!
After Edwin left the Royal Gwynedd Court, he was able to recover a united Northumbrian crown with the help of the Saxon Bretwalda, King Rędwald of East Anglia in 616. He then appears to have turned to expansionism. First, Edwin conquered the British Kingdom of Elmet. Then, after Cadfan's death, he turned on Gwynedd. He attacked Ynys Manaw (Isle of Man) by sea and, from here, spring-boarded to Ynys Mon (Anglesey) where Cadwallon underwent some crushing defeats. The King of Gwynedd was pushed back to the tiny Ynys Lannog (Isle of Priestholm) where he was besieged for several weeks before managing to escape to Ireland. From here he moved on to Guernsey and then to the court of his cousin, King Salomon II of Brittany. Together they plotted revenge.
Cadwallon sent an advance party to Britain to rally his men and those of the other British kingdoms, while he prepared a Breton invasion force. The advance guard landed in Dumnonia, but were immediately caught up in a Mercian siege of Caer-Uisc (Exeter). King Clemen was, thus, in no position to help the Gwynedd cause. However, Cadwallon soon arrived with his army and crushed the Mercians, forcing their King, Penda, into a mutual anti-Northumbrian alliance. Together, they marched north to regain Gwynedd at the Battle of Cefn Digoll (Long Mountain near Welshpool). They did not stop there, however, and hounded the Northumbrians back to their own kingdom. Here they wreaked revenge on the Northern Angles, burning York, sacking Yeavering (Ad Gefrin) and butchering Northumbrians as they went. So savagely did Cadwallon treat them that the Northern Angles thought they were all to be exterminated.
Edwin was finally killed at the Battle of Meicen (Hatfield Chase) in 633, but this did not entice Cadwallon to leave Northumbria. Edwin's cousin, Osric, managed to rally the Nothumbrian troops and besieged the King of Gwynedd at York. Cadwallon, however, broke out, caught Osric unawares and destroyed his entire army. Aethelfrith of Bernicia's son, Eanfrith, then returned from Pictland and tried to negotiate peace with Cadwallon. The King would have none of it though and Eanfrith was also slain. Within a year, however, Eanfrith's half-brother, Oswald, marched south from his exile in Scottish Dalriada and encountered Cadwallon at Catscaul or "Cad-ys-gual", the Battle of the Wall (Heavenfield, near Hexham). Here Cadwallon died. Conflicting evidence suggests he may have survived the battle and died in 659, though this is unlikely. Tradition says he was buried beneath the Ludgate of Caer Londein, where he still occasionally held court over both Britons and Saxons. A mounted statue of him was raised upon its top.