Князь Мстислав II Изяславич был последним сильным киевским князем, свободным от влияния с севера. Среди жителей Киева он пользовался уважением и любовью за огромные заслуги в борьбе со степью, а также за созданную охрану русской торговли в ней.
Выдвинулся на политическую арену в 1146 году, когда помог отцу Изяславу Мстиславичу отнять Киев у северского князя Игоря Ольговича. Тогда же Изяслав посадил его в Переяславле Южном.
Участвовал почти во всех войнах своего отца с Юрием Долгоруким; в 1152 году привёл на помощь отцу многочисленное венгерское войско, которое южнее Перемышля на р. Сан нанесло поражение Владимирку Галицкому, свату и союзнику Юрия.В 1153 году дважды победил половцев, на берегах рек Орели и Псёла.
После смерти отца (1154) Мстислав вместе с дядей Ростиславом Мстиславичем Смоленским, занявшим киевский престол, и Святославом Всеволодовичем, племянником северского князя, выступил против Изяслава Давыдовича Черниговского, также претендовавшего на Киев. В это время в Киеве умер Вячеслав Владимирович, Юрий Долгорукий двинулся из Суздаля в Киев через смоленскую землю. На помощь к Изяславу пришли Глеб Юрьевич и половцы, и Ростислав отрёкся от Киева за себя и от Переяславля за племянника, что вызвало негодование Мстислава и отвод им войск. Половцы нанесли удар по войскам союзников и взяли много пленных, в том числе Святослава Всеволодовича (позже вызволенного из плена Изяславом Давыдовичем). Мстиславу пришлось уехать к брату в Луцк.
В 1155 году, осаждённый Юрием в Луцке, удалился в Польшу, но в следующем году появился с новыми войсками в Волынской земле, выгнал оттуда своего дядю Владимира. Поход Юрия на Мстислава был безрезультатным. Мстислав вступил в коалицию с дядей Ростиславом Смоленским и Изяславом Черниговским против Юрия. В это время (1157) последний скончался; киевский стол занял Изяслав Давыдович Черниговский.
Уже в конце 1158 года Изяслав поддержал претензии на галицкий престол двоюродного брата Ярослава Осмомысла, Ивана Берладника. К союзу Галича, Волыни и Смоленска присоединился двоюродный брат Изяслава Святослав Ольгович, который после перехода Изяслава в Киев занял Чернигов. Несколько лет Изяслав с помощью половцев и северского князя Святослава Всеволодовича боролся за Киев и Чернигов, но безуспешно. Мстислав с галицкой помощью дважды изгонял из Киева Изяслава, однако, оба раза уступал престол старшему в роду Мстиславичей, своему дяде Ростиславу. За это Мстислав получил от него удел в Киевской земле с городами Белгород, Треполь и Торческ, обязавшись за это защищать юг Руси от набегов половцев.
Киевляне призвали Мстислава на великое княжение в 1167 году, после смерти Ростислава Мстиславича. Мстиславу пришлось согласиться с присутствием в Киевской земле владений могущественного клана Ростиславичей: Рюрик Ростиславич удержал г. Овруч (Вручий), а Мстислав Ростиславич — Вышгород.
Владимир Мстиславич, дядя Мстислава, организовал заговор, привлёк на свою сторону чёрных клобуков, но был разбит Мстиславом под Вышгородом. Примечательное обстоятельство в связи со сбором войск для похода на половцев упоминает летопись: «были тогда Ольговичи в воле Мстислава». Весной 1168 года Мстислав предпринял большой поход против половцев во главе киевских, чернигово-северских, переяславских, волынских, туровских и городенских полков, нанёс им тяжелое поражение у «Чёрного леса», обезопасил торговые пути, захватил огромную добычу, освободил многих русских пленных. Эта победа прославила Мстислава и привела к тому, что новгородцы в том же году изгнали князя Святослава Ростиславича и попросили у Мстислава на княжение его сына — Романа Мстиславича. Однако такое резкое усиление обеспокоило северских и суздальских князей (свою роль сыграло и то, что они традиционно были в союзе с половцами, тогда как киевляне опирались на чёрных клобуков и берендеев).
В 1169 году Андрей Боголюбский собрал против Мстислава грандиозное войско во главе со своим сыном Мстиславом, в которое вошло большинство русских князей, в том числе смоленские Ростиславичи. Несмотря на то, что поход не поддержал черниговский князь Святослав Всеволодович, галицкий князь Ярослав Владимирович, туровские и городенские князья, Мстислав не смог удержать Киев (март 1169) и удалился на Волынь, оставив семью в руках неприятелей.
Киевским князем стал не сам Андрей Боголюбский, а его младший брат Глеб Переяславский, но киевляне не желали мириться с новым порядком. Зная об их настроениях, Мстислав в марте 1170 года с луцкими, галицкими, туровскими и городенскими полками вошёл в Киевскую землю, занял Поросье и вступил в Киев, жители которого без боя открыли ворота любимому князю. Давыд Ростиславич сел в осаду в Вышгороде, а Глеб Юрьевич бежал к половцам и привёл от них войско. Тем временем союзники, начиная с галичан, покинули Мстислава, и в апреле 1170 года он был снова вынужден оставить Киев и уехать на Волынь. В августе того же года Мстислав Изяславич умер от болезни во Владимире-Волынском, но уже в следующем году на киевском княжении умер и Глеб.
Тело его, по некоторым известиям, погребено там же, в Богородицкой церкви, им самим выстроенной. Имел трех (по другим известиям, четырех) сыновей, в том числе знаменитого Романа, князя галицкого. Сыновья: Роман, Владимир, Всеволод, внебрачный Святослав.