Уже в конце XIII века Джон стал правой рукой своего стареющего отца, а вскоре фактически возглавил клан Макдугалл в их борьбе за власть на Гебридских островах с Макдональдами. В 1296 году Джон разбил отряды Кэмпбеллов в центральном Аргайле и убил их лидера, Колина Мора, положив начало векового конфликта между этими двумя кланами. Горцы Джона Макдугалла терроризировали земли соседних родов на рубеже XII—XIII веков, чем вызвали ответные репрессии со стороны англичан, захвативших к тому времени Шотландию.
В 1301 году Джон Макдугалл был вынужден примириться с английским королём Эдуардом I, а после восстания в 1306 году Роберта Брюса и провозглашения его королём Шотландии, Джон перешёл на сторону Англии: Брюсы и поддерживающие их Макдональды были давними противниками рода Макдугалл. В середине июля 1306 года войска Джона Макдугалла разгромили отступающую на запад армию Роберта Брюса в битве при Дэлрае, вынудив короля бежать из Шотландии. Однако в 1307 году Роберт вернулся и, подчинив предварительно северную и северо-восточную часть страны, в августе 1308 года вторгся в Аргайл. На этот раз Макдугаллов постигла неудача: в сражении на Брандерском перевале отряды Джона Макдугалла были наголову разбиты. В следующем году король захватил Данстаффнэйдж, родовой замок и центр владений Макдугаллов. Джон вместе с отцом были вынуждены бежать из страны и укрыться в Англии. Власть Макдугаллов в Аргайле была ликвидирована.
Оказавшись в Англии, Джон продолжил борьбу с королём Робертом. В 1311 году Эдуард II назначил Джона Макдугалла адмиралом английского флота и направил его на борьбу с шотландцами. В 1315 году ему удалось изгнать шотландские войска с острова Мэн. Затем он предпринял поход в Ирландию, но в 1316 году заболел и вернулся в Лондон, где ему был назначен английский пенсион. Спустя год, в сентябре 1317 году Джон Макдугалл скончался во время паломничества в Кентербери.