В полдень 23 августа разъезды войска Тохтамыша появились под Москвой. Группа татар с толмачом-переводчиком подскакала к стенам. Татары кричали: «Есть ли князь Дмитрий во граде?» Со стены ответили: «Нет его в граде». Объехав вокруг стены Кремля, татарские разъезды скрылись в лесах, окружавших Москву. 24 августа войска хана Тохтамыша осадили город. Началась перестрелка. У москвичей были самострелы, издали поражавшие врагов, и даже пушки — тюфяки. Татарские лучники ответили ливнем стрел, которые убили и поранили многих защитников стен: степняки лучше горожан владели этим оружием, стреляли метко. Но когда толпы татар с лестницами бросились на штурм, они сами несли тяжелый урон. «Горожане, воду в котлах скипятив, лили на них кипяток», «стреляли и камнями сшибали», «пушки пускали на них». А «некто горожанин москвитин, суконник, именем Адам, с Фроловских ворот пустил стрелу из самострела и убил некоего из князей ордынских сына, знатного и славного, и великую печаль причинил Тохтамышу-царю и всем князьям его». Два приступа ордынцев были отбиты. Враг отошел от неприступных кремлевских стен и начал осаду города.
Три дня стоял хан Тохтамыш под Москвой, окружив ее тесным кольцом своих отрядов. Город продолжал оставаться неприступным. Тогда хан начал переговоры с осажденными. Ордынцы убеждали москвичей: «Хан вас хочет жаловать, потому что неповинны вы, не на вас пришел хан, а на князя Дмитрия. Ничего не требует от вас хан, только встретьте его с честью и легкими дарами, а вам всем мир и любовь!» Летописец не сообщал, почему москвичи поддались на уговоры хана. Можно предположить, что какую-то роль в решении москвичей сдать город без боя сыграло боярство, которое еще «до начала осады заняло пораженческую позицию».
26 августа москвичи открыли городские ворота. Делегация бояр встретила ордынцев, но те, размахивая саблями, «в город ворвались, и одних иссекли, а других пленили, и церкви разграбили, и множество книг, снесенных отовсюду в осаду, пожгли, и богатство и казну княжескую взяли». Город был разграблен и сожжен, уцелевшие от резни москвичи взяты в плен.
Разорив Москву, хан Тохтамыш разделил свое войско на несколько частей и направил во все стороны для грабежа. По сообщению летописца, одни татарские отряды пошли к Переяславлю, «другие Юрьев взяли, а иные Звенигород, и Можайск, и Боровск, и Рузу, и Дмитров взяли, волости и села пленили. Переяславль же, взяв, сожгли, а горожане многие на озеро выехали на судах и тем спаслись». Но задерживаться долго в русских землях Тохтамыш побоялся. Под Волоком-Ламским передовой отряд ордынцев был разбит князем Владимиром Андреевичем. Пришли вести о том, что в Костроме великий князь Дмитрий Донской собрал войско и готовится к удару. И хан Тохтамыш начал отступление. По дороге в степи ордынцы разорили Коломну, а затем вторглись в Рязанское княжество. Князю Олегу рязанскому не помогло его предательство: рязанское княжество было страшно опустошено. По сообщению летописца ордынцы «повоевали Рязанскую землю» и отошли восвояси «с бесчисленным богатством и бесчисленным полоном».
Великий князь Дмитрий Иванович возвратился в свою разоренную столицу. Обстановка была исключительно трудной. Укрепления Москвы были разрушены. Пограничные крепости сожжены. Московское княжество обезлюдело; тех, кто уцелел от резни, ордынцы увели в плен. Сразу активизировались противники Москвы. Князь Михаил тверской «пошел к Тохтамышу в Орду с честью и дарами, ища себе великого княжения Владимирского и Новгородского». Следом за ним отправился к хану и князь Борис городецкий. Ненадежны были и другие князья. Феодальная раздробленность снова на время взяла верх над общерусскими интересами. И Дмитрию Донскому пришлось смириться. Он послал к хану своего сына Василия, чтобы «тягаться о великом княжении Владимирском и Новгородском с князем Михаилом Александровичем тверским». Тохтамыш передал «ярлык» на великое княжение московскому князю. Но за это Дмитрию Донскому пришлось заплатить дорогую цену: снова в Орду потекли тяжкие «дани» и «выходы» с русских земель. Хан восстановил свою власть над Русью.