Вернувшись в Англию, неукротимый Эдуард снова затеял войну с баронами, но терпел одни поражения. В марте он разграбил Глостер, был окружен баронской армией, притворно пообещал сдаться, но бежал и направился в незащищенный Нортхэмптон, где находился 22-летний сын Монфора. Он был убит вместе с многими горожанами — если не по приказу принца, то с его молчаливого согласия. Потом Эдуард разорил земли одного из главных своих врагов графа Феррерса и направился в Лондон, где его сторонники обещали открыть ему ворота. На полпути, у города Льюис, соединенное войско Эдуарда и его дяди Ричарда встретилось с армией баронов. Утром 14 мая принц сделал вылазку, напав со своими рыцарями на ополчение лондонских горожан, шедшее на подмогу Монфору. Ополченцы тут же бежали, и Эдуард гнал их четыре мили и перебил почти всех, мстя за прошлогоднее оскорбление. Потом он увлекся грабежом вражеского обоза и вернулся к Льюису только к двум часам дня. За это время армия баронов наголову разбила королевское войско и взяла в плен Ричарда Корнуэльского; король успел укрыться в монастыре. Увидев это, наемники Эдуарда разбежались, и ему пришлось сдаться. Его отправили в Дувр, где Генри де Монфор, сын Симона, содержал его как обычного пленника — в цепях и на скудном пайке.
Позже принца перевели в замок Кенильворт, где он получил статус почетного пленника и даже мог принимать посетителей, хотя комендант не спускал с него глаз. В таком положении он находился целый год; парламент в январе предлагал отпустить его, но Монфор оставался непреклонным. К тому времени король также оказался в руках графа, который провозгласил себя протектором Англии. Эдуарда спасли новые разногласия в баронском лагере. Граф Глостерский Гилберт де Клэр поссорился с Монфором и вступил в союз с феодалами Марча. Он решил опереться на помощь принца, и 28 мая тот бежал из Кенильворта при помощи охранявшего его младшего брата Глостера. Эдуард пошел на хитрость: устроив конные состязания, он загнал всех лошадей в крепости и ускакал на последнем свежем жеребце в Вигмор, где его уже ждал Роджер Мортимер, старший из баронов Марча. В Ладлоу Эдуард вступил в союз с Глостером, пообещав все, что тот хотел, — восстановить «древние, добрые и общепринятые законы», отменить все решения, ущемляющие власть сеньоров, изгнать иностранцев из страны и из королевского совета и не позволять им владеть замками или иной собственностью в Англии.
Это соглашение позволило недавнему изгнаннику без всякой борьбы восстановить королевскую власть, еще недавно жестоко униженную. На его стороне, кроме баронов Марча, оказались теперь граф де Варенн, Гийом де Валанс, Хью Бигод и другие могущественные феодалы. Монфор сумел заставить епископов всей Англии отлучить Эдуарда и его сторонников от церкви, но это мало повлияло на успехи принца. 8 июня он захватил Вустер, а чуть позже осадил Глостер, который храбро оборонялся. Когда город пал, Эдуард проявил великодушие, отпустив всех пленных при условии месяц не воевать против него. Постепенно изживая пороки юности, он становился тем, кем вошел в историю — суровым и властным монархом, порой жестоким, но всегда справедливым. Разрушив мосты через Северн, он отрезал армию Монфора от подкреплений, которые вел к нему сын, Симон-младший. Граф Лестерский попытался выбраться из окружения на кораблях, которые вызвал из Бристоля, но Эдуард посадил своих воинов на галеры и атаковал вражеский флот. Часть кораблей была потоплена, а Монфор отступил в Ньюпорт, где 8 июля принц нанес ему решительное поражение.
Однако в это время к Кенильворту подошел Симон-младший с 30-тысячной армией. Войско Эдуарда насчитывало только 20 тысяч человек, и он вскоре обнаружил, что Монфоры зажимают его в клещи. Принц неплохо организовал разведку: его люди под видом крестьян беспрепятственно проникали во вражеский стан. Они-то и донесли, что в лагере Симона-младшего совершенно отсутствует дисциплина. Воспользовавшись этим, Эдуард рано утром 1 июля напал на Кенильворт и взял в плен чуть ли не половину баронского войска, после чего вернулся в Вустер. Узнав об этом, Монфор срочно двинулся к Кенильворту. Эдуард совершил стремительный марш на юго-запад и встретил его у городка Ившем; помня о неудаче при Льюисе, он строго-настрого запретил своим людям покидать поле боя. 4 августа состоялось решающее сражение «баронской войны». У Монфора осталось всего семь тысяч солдат против 20 тысяч воинов принца; однако он с мужеством отчаяния атаковал центр вражеского строя. Невзирая на усталость, закаленные бойцы Эдуарда легко разбили войско графа Лестерского; среди трех тысяч трупов нашли тела самого Симона и его сына Генри.