Накануне Куликовской битвы основными противниками Северо-Восточной Руси были Золотая Орда и Литовское княжество. Литва вела борьбу с Ливонским орденом, который подпирал её с запада, и с княжествами Северо-Восточной Руси, за счет которых она стремилась расширить свои владения. Литва небезуспешно в своей борьбе с Московским княжеством привлекала на свою сторону Тверь. С Тверским княжеством Литва заключила военно-политический союз. Однако у неё не хватало сил одолеть Московское княжество. Поэтому Литва заключила союз с Золотой Ордой. Литва граничила с Золотой Ордой на юго- востоке.
Тверское княжество главным своим противником считало Москву. Оно стремилось лидировать среди княжеств Северо-Восточной Руси. Поэтому ему и нужны были военно-политические союзы как с Литвой так и Золотой Ордой. Мамай отдал ярлык на великое княжение тверскому князю Михаилу. Московский князь Дмитрий воспротивился этому. Он собрал войско 17 княжеств и пошел на Тверь. В 1375 году он вынудил тверского князя Михаила согласиться с первенством Москвы среди всех русских княжеств. Тверской князь вынужден был отказаться от соискательства великого княжения и обязался выступать всегда вместе с московским князем. В Тверской летописи сказано: «Если татары пойдут против нас или против тебя, то битися нам с тобою заодно против них; если мы пойдем против них, то нам с тобою заодно пойти против них».
В походе на Тверь московского князя поддержали Рязанское и Нижегородское княжества. Союзники Твери литовцы не решились принять участие в сражении. Они «побежали назад». Так московский князь Дмитрий сделал первую попытку объединить русские княжества в единое государство.
Золотая Орда не могла не реагировать на такой вызов. Мамай послал свои войска под Нижний Новгород. Он обратился через своих послов к московскому князю с вопросом: «Почто естя ходил и ратью на великого князя Михаила Тверского?» Нижегородское княжество было разорено, «и с многим полоном» войска Мамая возвратились в Орду. По пути татарские отряды разорили и Новосильское княжество. В летописи сказано: «Новосильскую землю всю пусту сът вориша». Естественно, что московский князь Дмитрий ждал, что татары пойдут на Москву. Поэтому он в 1376 году ходил «за Оку – реку, стерегася рати татарския от Мамая». Одновременно часть московского войска действовала в Среднем Поволжье. Под их действием часть волжских татарских и булгарских феодалов перешла на службу в Москве. Командовал войском князь Дмитрий Михайлович Боброк Волынский.
В 1377 году произошло позорное поражение русских войск татаро-монгольскими отрядами Мамая. Причиной было обычное разгильдяйство, пьянство и безответственность.
Мамай направил войско в поход на Нижний Новгород. Командующим был царевич Араб-шах (в русских летописях Арапша), который незадолго до этого перебежал из Синей Орды в Золотую Орду. Московский князь Дмитрий Иванович с войском направился защищать Нижний Новгород. Но он значительно опередил ордынские войска. Там князь оценил обстановку и принял решение оставить часть своих войск в Нижнем Новгороде, а часть войск увести обратно в Москву. То есть Дмитрий с частью своих войск вернулся в Москву. Он распорядился направить навстречу татарам полки Московский, Владимирский, Переяславский и Муромский, а также отряды Юрьевский и Ярославский. Ясно, что это дополнительно к войскам Нижегородского княжества.
Войсковые начальники получили разведданные, из которых следовало, что татары находятся далеко. Поэтому они позволили себе расслабиться. Они полагали, что «никтоже может стати против нас». Поэтому все «начаша ходити и ездити во охабнех и в сарафанех, а доспехи своя на телеги и в сумы скуташа, рогатины и сулицы и копья не приготовлены, а инии еще и не посажены быша, такожде и щиты и шоломы…» Так сказано в Тверской летописи.
Враг появился внезапно. Его провели тайными путями мордовские князья. Сопротивляться врагу было некому и нечем. Разгром был полный. Татары войско разгромили, большую часть пленили, а город Нижний Новгород разорили. Разгром татарами русского войска на реке Пьяне произошел 2 августа 1377 года. В плен угнали не только солдат, но и много мирных жителей Нижнего Новгорода. Сам город был сожжен.
Легкая победа окрылила Мамая. В следующем году он предпринял поход против Нижегородского, Рязанского и Московского княжеств. В Троицкой летописи сказано: «Того же лета поганый Мамай, събрав вся многы, – посла Бетча ратию нам князя Дмитрия Ивановича и на всю землю Русскую». И на этот раз Нижний Новгород был взят. Ордынцы стали разорять рязанскую землю и направлялись к границам Московского княжества. Московский князь Дмитрий встретил татар южнее Коломны на реке Воже. Под командованием Дмитрия были московские, рязанские, пронские и полоцкие дружины. Противники стояли друг против друга по разные стороны реки Вожи. Это противостояние продолжалось несколько дней. Русское войско занимало возвышенность на северном берегу реки Вожи. Отсюда хорошо просматривалось всё предстоящее поле битвы. Дмитрий Иванович расположил войско следующим образом. В центре боевой линии находился Большой полк. На флангах находились полки Правой и Левой руки. Общее командование осуществлял сам Дмитрий. Князь Даниил Пронский командовал полком Левой руки, а князь Андрей Полоцкий и окольничий Тимофей Вельяминов командовали полком на правом фланге. Татары не сомневались в своей победе. Они решились начать боевые действия. Но для этого надо было форсировать реку. При таком маневре войска подвергаются нападению противника и часто являются легкой добычей противника.
Дмитрий дал возможность главным силам противника завершить переправу. Фланговые подразделения ещё продолжали переправу. Дмитрий выдвинул свои фланги вперед. Когда татары пошли в атаку, русские войска их атаковали с трех сторон. Ордынцы были опрокинуты в реку. Кто смог, тот спасся бегством. К. Маркс об этом сражении написал так: «11 августа 1378 года Дмитрий Донской совершенно разбил монголов на реке Воже (в Рязанской области). Это первое правильное сражение с монголами, выигранное русскими».
Мамай оценил противника в лице русского войска и стал укреплять свой военно-политический союз с Литвой. Мамай установил прямую связь с великим князем Литвы Ягайло. Всё это не укрылось от Дмитрия Ивановича. Он с войсками зимой 1379/80 года предпринял поход на Литву в южной её части, где она граничила с Ордой. Мамай же послал свои отряды на Рязанское княжество. Рязанский князь, как это часто бывало с русскими князьями, «не приготовился бе и не стал противу их на бой». Он просто-напросто сбежал за Оку. В летописи сказано, что «татарове же приидше и град Переяславль и прочие грады взяша, и огнем пожгоша». Олег был настолько перепуган, что в Куликовской битве выступал на стороне татар. И такую же политику занял и князь многократно разоренного Нижегородского княжества. Позиция князей в Новгороде и Смоленске еще не определилась.
Мамай хорошо понимал, что если он будет бездействовать, то княжества Северо-Восточной Руси могут вообще выйти из подчинения. Это означало – потерять колоссальные доходы. Этого он допустить не мог. Он решил предпринять генеральный поход на Русь с тем, чтобы укрепить свои позиции и полностью подчинить себе русские земли. Мамай рассчитывал на военную помощь Ягайло, который был ярым противником Руси. Мамай послал послов к Олегу Рязанскому и к Ягайло. Об этом в летописи сказано так: «И нача посылати к Литве, и поганому Ягайлу, и ко льстивому, дьяволу советнику, Олгоу Рязанскому, поборникоу Бесерменскому, лоукавому князю…». В конце концов Литва и Рязань дали согласие выступить против Московского княжества вместе с Ордой. Ягайло рассчитывал поживиться русскими землями.
Надо иметь в виду, что в то время в состав Литвы входило значительное число русских княжеств. Поэтому Литва и называлась Литовско-Русским государством. Кроме того, в состав войск Ягайло входили и воинские отряды белорусских и украинских княжеств. Ягайло задавал себе вопрос, пойдут ли русские,