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