Перед сражением московское войско находилось в своем лагере на Митьковом поле, расположенном в 5 км к западу от Дорогобужа, за реками Ведрошь (Ведрошка), Селия и Тросна. Через Ведрошь был перекинут единственный в этих местах мост. Своевременно узнав о подходе литовской армии, русские воеводы, намеренно не уничтожая моста, выстроили для боя Большой полк под командованием Д. В. Щени. Правый фланг русской рати был обращен к Днепру, недалеко от места впадения в него Тросны, левый был прикрыт большим труднопроходимым лесом, в котором, за флангом Большого полка, укрылся в засаде Сторожевой полк воеводы Юрия Захарьича. На западный берег Ведроши выдвинулись передовые части, задачей которых было завязать бой и отойти затем на восточный берег реки, заманив туда литовцев.
В отличие от русских воевод гетман Острожский шел к месту будущего сражения, имея самые приблизительные сведения о противнике, сообщенные ему то ли пленным, то ли перебежчиком дьяком Германом. Доверяя его показаниям, литовский главнокомандующий был уверен, что под Дорогобужем стоит лишь небольшое русское войско.
Помимо летописного рассказа об этой битве, одной из крупнейших в истории русского средневековья, ее подробно описал и Сигизмунд Герберштейн, сообщивший о Ведрошском сражении ряд ценных сведений. Он упоминает о том, что «литовцы… разузнали от некоторых пленных про число врагов, а также и их вождей, и возымели от этого крепкую надежду разбить врага». «Несколько московитов» (передовой отряд, находившийся на левом берегу Ведроши), «вызвали на бой литовцев; те без всякой боязни оказывают сопротивление, преследуют их, обращают в бегство и прогоняют за речку; вслед затем оба войска вступают в столкновение, и с той и другой стороны завязывается ожесточенное сражение. Во время этого сражения, ведшегося с обеих сторон с одинаковым воодушевлением и силою, помещенное в засаде войско, про грядущую помощь которого знали весьма немногие из русских, ударяет с боку в средину врагов. Литовцы разбегаются…»
Битва продолжалась почти шесть часов. Исход ее, как показано выше, решил удар полка Юрия Захарьича. Русские вышли в тыл литовцам и разрушили мост через реку, отрезав противнику все пути к отступлению. После этого началось избиение окруженного врага. Только убитыми литовцы потеряли около 8 тыс. человек. Победителями были захвачены литовский обоз и артиллерия. В плен попали гетман Острожский и другие именитые литовские военачальники воевода троцкий Григорий Остикович, маршалок «Лютавр» (Иван Литавор Богданович Хребтович), воеводы Николай Юрьевич Глебов, Николай Юрьевич Зиновьев и служившие Александру Казимировичу князья Друцкие, Мосальские и много «панов служивых».
Узнав о разгроме лучшего литовского войска (гонец прибыл в Москву 17 июля 1500 г.), Иван III пышно отпраздновал победу и послал к Д. В. Щене и другим воеводам «спросить о здоровье», воздав им «честь и дары и жалованья».
Потерпев жестокое поражение, литовцы вынуждены были перейти к обороне. Не замедлив воспользоваться этим, русские войска одержали еще одну важную победу. 9 августа 1500 г. полки псковского наместника князя Александра Владимировича Ростовского штурмом овладели городом Торопцом.
Победы Москвы, встревожили союзников Литвы. Больше всего возросшего русского могущества опасались власти Ливонского ордена, решившие в начавшемся конфликте встать на литовскую сторону[6]
. Весной 1501 г. в Дерпте было арестовано более 200 русских купцов, товары которых были разграблены. Направленные в Ливонию псковские послы оказались задержаны. Отношения с Орденом стремительно ухудшались. 21 июня 1501 г. в Вендене магистром Вальтером фон Плеттенбергом и представителями Александра Казимировича был подписан договор о союзе с Литвой, направленный против России.