Иоанн Баллиоль был сыном английского барона Джона де Баллиоля и Дерворгилы Галлоуэйской, наследницы шотландского графства Галлоуэй. От своей матери, праправнучки короля Давида I, Иоанн унаследовал права на корону Шотландии. После смерти королевы Маргарет Норвежской Девы в 1290 году претензии на престол страны выдвинуло четырнадцать кандидатов, в том числе Иоанн Баллиоль, внук старшей дочери Давида Хантингдонского, брата королей Малькольма IV и Вильгельма I Льва, и Роберт Брюс, сын средней дочери Давида. Спор был вынесен на рассмотрение Эдуарда I, короля Англии (эти события известны как «Великая тяжба»). В 1292 году Эдуард I вынес решение в пользу Иоанна Баллиоля, и 30 ноября 1292 года Иоанн был коронован королём Шотландии. В качестве благодарности за поддержку король признал сюзеренитет Англии над Шотландией.
Несмотря на коронацию права Иоанна на престол отказались признать часть шотландских баронов во главе с Робертом Брюсом, лордом Аннандейл. Недовольные ориентировались на английского короля, который начал обращаться с Шотландией как с вассальной территорией, вынуждая Иоанна выступать в английских судах в качестве ответчика по шотландским искам и размещая английские гарнизоны в шотландских крепостях. В целях ослабления зависимости от Англии Иоанн Баллиоль в 1295 году возобновил старый союз с Францией и Норвегией и открыто выступил против Эдуарда I.
В 1296 году английская армия вторглась на территорию Шотландии. Началась почти трёхсотлетняя война за независимость страны. Английского короля поддержала партия Брюсов, что позволило Эдуарду I наголову разбить шотландцев в битве при Спотсмуре и относительно легко завоевать всю страну. Иоанн был пленён и подписал 10 июля1296 года отречение от престола Шотландии. На правах сюзерена отказавшегося от лена вассала Эдуард I объявил себя королём Шотландии, в результате чего страна потеряла независимость.
Пленённый Иоанн Баллиоль был помещён в Тауэр, а затем выслан во Францию, где и провёл остаток жизни, не предпринимая попыток возвращения в Шотландию, в которой с 1297 года развернулась борьба за восстановление независимости. В 1306 года королём Шотландии был коронован Роберт Брюс, внук главного конкурента Иоанна на процессе о шотландской короне 1292 года.