Наибольшая опасность для Москвы исходила от тверского князя Михаила, сына Александра Михайловича Тверского. Он, естественно, питал родовую ненависть к московским князьям и был при этом человеком предприимчивым, упрямого и крутого нрава. Став великим князем Тверским, он начал войну против своих родичей. Василий Михайлович Кашинский обратился за помощью к Дмитрию Ивановичу, а Михаил — к своему зятю Ольгерду, великому князю Литовскому. Так внутренняя усобица русских князей переросла в войну между Москвой и Литвою.
В 1367 г. Василий Кашинский с московскими полками разорил Тверскую волость. Михаил бежал в Литву и вернулся с литовскими полками. На этот раз князья заключили мир, но в 1368 г. Дмитрий и митрополит Алексей зазвали к себе в Москву князя Михаила на третейский суд. После этого суда тверского князя схватили вместе со всеми боярами и посадили в заключение, но вдруг узнали о неожиданном приезде трех ордынских послов. Этот приезд напугал врагов Михаила, и они выпустили его на свободу, заставив отказаться от части своего удела. Михаил поехал в Литву и уговорил Ольгерда начать войну с Дмитрием.
В Москве узнали о нашествии Ольгерда только тогда, когда литовский князь уже приближался с войском к границе вместе со своим братом Кейстутом, племянником Витовтом, разными литовскими князьями, смоленской ратью и Михаилом Тверским. Князья, подручные Дмитрию, не успели по его призыву явиться на защиту Москвы. Дмитрий мог выслать против Ольгерда в заставу только сторожевой полк из москвичей, коломенцев и дмитровцев под начальством своего воеводы Дмитрия Минина. 21 ноября на реке Тросне литовцы встретили московский сторожевой полк и разбили его: князья, воеводы и бояре все погибли. Узнав, что Дмитрий не успел собрать большого войска и заперся в Москве, Ольгерд быстро пошел к ней. Дмитрий велел пожечь посады, а сам с митрополитом, двоюродным братом Владимиром Андреевичем и со всеми людьми затворился в своем белокаменном Кремле, заложенном в прошлом году. Три дня стоял под ним Ольгерд, взять его не мог, но страшно опустошил окрестности, повел в плен бесчисленное множество народа и погнал с собою весь скот. Впервые за сорок лет Московское княжество испытало неприятельское нашествие. Дмитрий должен был вернуть Михаилу Городок и Другие захваченные части Тверского удела.
Но Дмитрий не хотел уступать окончательно. В следующем году он посылал воевать и грабить Смоленскую землю, мстя за участие смолян в разорении Московской волости. Потом москвичи воевали под Брянском, а в августе 1370 г. Дмитрий вновь послал объявить войну Михаилу и сам во главе сильного войска вторгся в его волость. Михаил бежал в Литву, а Дмитрий взял и пожег Зубцов и Микулин, а также все села, до каких смог добраться.
Множество людей с их добром и скотом было вывезено в Московское княжество.
Ольгерд, занятый войной с крестоносцами, мог ответить на нападение лишь в декабре. В рождественский пост он с братом Кейстутом, Михаилом и Святославом Смоленским подошел к Москве и осадил ее. Дмитрий и на этот раз заперся в Кремле, а Владимир Андреевич Серпуховской стоял в Перемышле.
К нему на помощь пришли рязанские и пронские полки. Ольгерд, узнав об этих сборах, испугался и стал просить мира. Но Дмитрий вместо вечного мира согласился лишь на перемирие до Петрова дня. Михаил также помирился с Москвой. Весной 1371 г. он поехал в Орду и возвратился оттуда с ярлыком на великое княжение и ханским послом Сарыхожею. Но вскоре Михаил убедился, что ханские ярлыки не имеют уже на Руси прежней силы. Владимирцы даже не пустили Михаила в город. Сарыхожа звал Дмитрия во Владимир слушать ярлык, Дмитрий отвечал: «К ярлыку не еду, на великое княжение не пущу, а тебе, послу цареву, путь чист». Вместе с тем он послал дары Сарыхоже. Сарыхожа оставил Михаила и отправился в Москву. Его приняли там с таким почетом и так щедро одарили, что он совершенно перешел на сторону Дмитрия, уговорил его ехать к Мамаю и обещал ходатайствовать за него.
Дмитрий решил последовать его совету и отправился искать милости Мамая.
Митрополит Алексей проводил его до Оки и благословил в путь. Несмотря на то что Дмитрий уже внушал опасения Мамаю, еще не трудно было приобрести его благосклонность, потому что Мамай был милостив к тому, кто давал ему больше. Дмитрий привез ему большие дары, притом же Сарыхожа настраивал его в пользу Дмитрия. Москва, несмотря на разорение, нанесенное Ольгердом, была все еще богата в сравнении с прочими русскими землями: сборы ханских выходов обогащали ее казну. Дмитрий не только имел возможность подкупить Мамая, но даже выкупил за 10 000 рублей серебром Ивана, сына Михайлова, удержанного в Орде за долг, и взял его себе в заложники в Москву; там этот князь находился на митрополичьем дворе до выкупа. Дмитрий получил от хана ярлык на княжение. Мамай даже сделал ему такую уступку, что положил брать дань в меньшем размере, чем платилась прежде.
В 1372 г. началась новая тверская война. Михаил, соединившись с литовцами, повоевал московские волости, а потом нанес сильное поражение новгородцам. В 1373 г. вновь на Москву пошел Ольгерд. На этот раз Дмитрий приготовился встретить его у Любутска и разбил сторожевой литовский полк.
Все войско литовцев переполошилось, сам Ольгерд побежал и остановился за крутым и глубоким оврагом, который не допустил неприятелей до битвы.
Много дней литовцы и москвичи стояли в бездействии друг против друга, наконец заключили мир и разошлись.
Михаил, лишившийся помощи Ольгерда, по-видимому, не мог уже скоро надеяться на нее, но все-таки не оставил своей борьбы с Москвою. Враги Дмитрия также подстрекали его. Как раз в это время в Москве умер последний тысяцкий Василий Вельяминов. Дмитрий решился упразднить этот важный древний сан вечевой Руси. Эта старинная должность с ее правами противоречила самовластным стремлениям князей. Но у последнего тясяцкого остался сын, Иван, недовольный новыми распоряжениями. С ним заодно был богатый купец Некомат. Они оба убежали в Тверь к Михаилу и побуждали его опять добиваться великого княжения. Михаил препоручил им же выхлопотать для него новый ярлык в Орде, а сам уехал в Литву, пытаясь все-таки найти себе помощь. Из Литвы Михаил скоро вернулся с одними обещаниями, но 14 июля 1375 г. Некомат привез ему ярлык на великое княжение, и Михаил, не думая долго, послал объявить войну Дмитрию. Он надеялся сокрушить московского князя силами Орды и Литвы, но жестоко обманулся. Помощь не приходила к нему ни с востока, ни с запада, а между тем Дмитрий собрался со всею силою и двинулся к Волоку Дамскому, куда пришли к нему тесть его Дмитрий Константинович Суздальский с двумя братьями и сыном, двоюродный брат Владимир Андреевич Серпуховской, трое князей Ростовских, князь Смоленский, двое князей Ярославских, князья Белозерский, Кашинский, Моложский, Стародубский, Брянский, Новосильский, Оболенский и Торусский. Все эти князья двинулись из Волока к Твери и стали воевать, взяли Микулин, попленили и пожгли окрестные места, наконец, осадили Тверь, где заперся князь Михаил. Осажденные крепко бились, но отдельные успехи не могли принести Михаилу пользы: волость его была опустошена вконец, города Зубцов, Белгород и Городок взяты. Он все ждал помощи из Литвы и от хана. Литовские полки пришли, но, услыхав, какая бесчисленная рать стоит у Твери, испугались и ушли назад. Тогда Михаил потерял последнюю надежду и запросил мира.
Условия этого мира дошли до нас. Независимый великий князь Тверской обязался считать себя младшим братом Дмитрия. Он обязался участвовать в московских походах или посылать свои полки против врагов Москвы. Михаил обязался также не искать ни великого княжения, ни Новгорода. Кашинское княжество становилось независимым по отношению к Твери.
Усмирение Тверского князя сильно раздражило Мамая. Он видел в этом явное пренебрежение своей власти. Его последний ярлык, данный Михаилу, был поставлен русскими ни во что. С этого времени между Москвой и Ордой началась открытая вражда, но дело долго не доходило до решительного столкновения. Сначала татарские рати в отместку за тверской поход опустошили Нижегородскую и Новосильскую земли. Вслед за тем в 1377 г. татарский царевич Арапша из Мамаевой Орды вновь напал на Нижегородскую область.