После смерти в 1430 году великого князя Литовского Витовта, деда Василия II, против него выступила коалиция удельных князей во главе с его дядей — князем звенигородским Юрием Дмитриевичем и его сыновьями Василием Косым и Дмитрием Шемякой. В ходе войны, осложнённой одновременной борьбой с Казанью и Великим княжеством Литовским, великокняжеский престол несколько раз переходил к галицким князьям, которых поддерживали Новгород и временно Тверь.
Высланный в 1433 году из Москвы захватившим великокняжеский престол Юрием, Василий II получил звание князя коломенского. «Сей город сделался истиной столицей великого княжения и многолюдной и шумной» — описывает историк Н. М. Карамзин Коломну того времени. Коломна служила центром объединённых сил, сочувствовавших великому князю в его политике «собирания Руси». Многие жители покинули Москву, отказавшись служить князю Юрию, и направились в Коломну. Улицы Коломны были запружены подводами, город на некоторое время превратился как бы в столицу Северо-Восточной Руси почти со всем административно-хозяйственным и политическим штатом. Получив поддержку, Василий смог вернуть себе трон, однако в ходе войны ещё несколько раз его лишался.
7 июля 1445 года в сражении у окрестностей Суздаля Василий II с объединенными русскими войсками потерпел поражение от казанского войска, под командованием казанских царевичей — Махмуда и Якуба (сыновей хана Улу-Мухаммеда), в результате сам Василий II и его двоюродный брат Михаил Верейский были взяты в плен, но 1 октября 1445 года, они были освобождены. Точных данных о условиях данного освобождения нет, однако это была большая сумма, также ряд городов были отданы на кормление.
Также по условиям этого кабального договора, по мнению некоторых источников, было создано в пределах России, в Мещере Касимовское ханство, первым ханом которого стал сын Улу-Мухаммеда — царевич Касим.
В 1446 Василий II был захвачен в Троице-Сергиевой лавре и 16 февраля ночью от имени Дмитрия Юрьевича Шемяки, Ивана Можайского и Бориса Тверского, которые, как пишет историк Н. М. Карамзин, велели ему сказать «Для чего любишь татар и даешь им русские города на кормление? Для чего серебром и золотом христианским осыпаешь неверных? Для чего изнуряешь народ податями? Для чего ослепил брата нашего, Василия Косого?», он был ослеплён, отчего получил прозвище «Тёмный», после чего был вместе с супругой отправлен в Углич, а мать его Софья Витовтовна отправлена в Чухлому. В 1447 году Василий посетил Ферапонтов монастырь и получил благословение игумена Мартиниана на поход против овладевшего Москвой Дмитрия Шемяки. С большим трудом он вернул себе московский трон.
После вторжения войск великого князя литовского Витовта во псковскую землю в 1426 году Витовт, не добившись успеха, начал переговоры с псковичанами, союзниками Василия II. С целью смягчить условия мира Василий направил к Витовту своего посла Александра Владимировича Лыкова. Отношения между Псковом и Литвой, тем не менее, продолжали оставаться напряжёнными и после заключения перемирия.
Понимая неизбежность нового столкновения с Василием Косым, Василий II пытался нормализовать отношения с Новгородской республикой. Зимой 1435—1436 гг. Он уступил новгородцам часть спорных земель, обязавшись послать своих людей для размежевания земель. После победы над Василием Косым великий князь отказался от выполнения прежних обязательств. Тем не менее новгородцы, желая сохранить свою самостоятельность в международных отношениях, не сопротивлялись политике Москвы (так, весной 1437 года Новгород без сопротивления уплатил Москве «чёрный бор» — одну из самых тяжёлых податей).
В 1440 году после гибели от рук заговорщиков великого князя Сигизмунда на литовской престол вступил Казимир Ягайлович (с 1447 года — польский король). Вскоре в Литве разгорелась ссора между князем Юрием Семёновичем (Лугвеньевичем) и Казимиром IV. Закрепившийся в Смоленске Юрий после первой неудачной попытки был выбит Казимиром, и Юрий бежал в Москву. «Прорусская» партия Литвы оказалась в числе противников Казимира IV.
Новгородцы и псковичи поспешили заключить договоры с Казимиром IV. В ответ на это Василий II выступил в поход против Новгородской республики зимой 1440—1441 гг. Его союзники псковичи разорили Новгородскую землю. Василий II захватил Демон и разорил ряд новгородских волостей. В ответ на это новгородцы также организовали ряд разорительных походов в великокняжеские владения. Вскоре новгородский архиепископ Евфимий и великий князь (вместе с псковичанами) заключили мирный договор, согласно которому Новгород выплачивал Москве огромный выкуп (8000 рублей).
Внешнеполитической изоляции Дмитрия Шемяки и Новгородской республики, в которой он укрепился после потери московского княжения, способствовал мирный договор Василия II с польским королём и великим князем Литовским Казимиром IV 1449 года. В 1453 году Дмитрий Шемяка был отравлен, а в 1456 году Новгородская республика была вынуждена признать свою зависимость от Москвы по Яжелбицкому договору.
Одновременно Василий обязался не поддерживать Михаила Сигизмундовича, возглавившего после смерти отца и Свидригайла Ольгердовича ту часть литовско-русской знати, которая выступала против усиления влияния польских феодалов и католической церкви на землях Великого княжества Литовского, и признал власть Казимира на всех русско-литовских землях.
Напряжёнными были и отношения Московского княжества с Ордой. После тяжёлой войны с царевичем Сеид-Ахметом Улу-Мухаммед с небольшими силами расположился около городка Белев, вассального Литве. Ввиду важности города в экономическом и стратегическом отношениях Василий II в 1437 году послал против хана войска во главе Дмитрия Юрьевича Шемяки и Дмитрия Юрьевича Красного. Устилая свой путь грабежами и разбоями, князья, достигнув Белева, опрокинули татар, вынудив их искать убежище в городе. Несмотря на то, что попытка овладеть городом для московских воевод оказалась неудачной, на следующий день татары пошли на переговоры. Понадеявшись на свои силы, воеводы разорвали переговоры и 5 декабря возобновили сражение. Русские полки были разбиты. Войска Улу-Мухаммеда отступили из-под Белева.
Под впечатлением от успеха под Белевым Улу-Мухаммед 3 июля 1439 года подступил к Москве. Василий II, не готовый к отражению войск противника, покинул Москву, возложив обязанности по обороне города на воеводу Юрия Патрикеевича. Не сумев овладеть городом, Улу-Мухаммед, простояв под Москвой 10 дней, повернул назад, разграбив окрестности.
Татарские набеги на русские земли не прекращались, участившиеся в конце 1443 года из-за сильных морозов. В конце концов недавний противник Руси царевич Мустафа в связи с тяжёлыми условиями проживания в степи обосновался в Рязани. Не желая терпеть присутствия татар на своих землях, Василий II выступил в поход против незваных гостей, и объединённые русско-мордовские войска разгромили татарское войско на реке Листани. Царевич Мустафа был убит. Именно во время этого сражения впервые отличился Фёдор Васильевич Басёнок.
К середине 1440-х годов набеги Улу-Мухаммеда на Русь заметно участились, а в 1444 году хан начал строить планы по присоединению Нижнего Новгорода, чему способствовали тесные связи суздальско-нижегородских князей с ордынцами. Между великим московским князем Василием II и казанским ханом развернулась ожесточённая борьба за Нижний Новгород, бывший тогда богатым волжским городом и важным стратегическим центром. Зимой 1444 года хан, овладев Нижним Новгородом, продвинулся даже дальше, захватив Муром. В ответ на эти действия Василий Второй собрал войска и выступил из Москвы во время Крещения. Василий II, согласно летописным источникам, располагал внушительными силами, в связи с чем хан не решился вступать в бой и отступил к Нижнему Новгороду. Вскоре город был отбит, а татары были разбиты под Муромом и Гороховцем. Успешно завершив кампанию, великий князь возвратился в Москву.
Весной 1445 года хан Улу-Мухаммед послал в поход на Русь своих сыновей Мамутяка и Якуба. Узнав об этом, Василий II не придал этому событию важного значения, так как был успокоен успехами прошлого года. Из Москвы великий князь выступил в Юрьев, куда затем прибыли воеводы Федор Долголдов и Юрий Драница, оставившие Нижний Новгород. Поход был организован плохо: князья Иван и Михаил Андреевичи и Василий Ярославич прибыли к великому князю с малыми силами, а Дмитрий Шемяка и вовсе не принял участия в походе. Войско великого князя потерпело катастрофическое поражение в битве под Суздалем. Василий II попал в плен, но был отпущен 1 октября. Дмитрий Шемяка ненадолго утвердился на престоле. За Василия II был обещан большой выкуп. Кроме того, татарским феодалам были розданы «кормления» — право на поборы с населения Руси. 17 ноября 1445 года Василий II вернулся в Москву, но был встречен холодно, отчуждённо-враждебно.
Василий II ликвидировал почти все мелкие уделы внутри Московского княжества, укрепил великокняжескую власть. В результате ряда походов в 1441—1460 усилилась зависимость от Москвы Суздальско-Нижегородского княжества, Новгородской земли, Пскова и Вятской земли. По приказу Василия II митрополитом был избран русский епископ Иона (1448 год). Его посвятил в митрополиты не константинопольский патриарх, а собор русских архиереев, что стало началом независимости русской церкви от константинопольского патриархата.
За несколько дней до кончины он приказал казнить детей боярских боровского князя Василия, заподозренных в заговоре.
Василий II был болен сухотной болезнью (туберкулёзом). Он велел лечить себя обычным в то время способом: по нескольку раз зажигать на разных частях тела трут. Это естественно не помогло, а в местах многочисленных ожогов развилась гангрена и он в марте 1462 года скончался.
Завещание князя писал дьяк Василий по прозвищу Беда.
Женой Василия II была Мария Ярославна, дочь удельного князя Ярослава Боровского. В октябре 1432 года состоялось их обручение, а 8 февраля 1433 года — свадьба. У Василия и Марии было восемь детей: