Красная Армия на реке Халхин-Гол одержала свою первую победу в борьбе с Японией, взяв реванш за провальную Хасанскую операцию, проведенную годом ранее, хотя и понесла больше потерь, чем проигравшие. Строго говоря, это вообще была первая победа России в противостоянии с Японией, поскольку в ходе Русско-японской войны 1904—1905 годов российская императорская армия так и не одержала ни одной победы. Как и в случае с боями у озера Хасан, бои у Халхин-Гола были спровоцированы советской стороной, чтобы создать подходящий внешнеполитический фон для грядущей сделки с Гитлером и захватить плацдарм на восточном берегу Халхин-Гола. Но, в отличие от хасанских боев, теперь у СССР были важные географические преимущества. Район конфликта, начавшегося 11 мая, находился на значительном удалении от дислокации основных сил японской Квантунской армии. Москва же заранее сосредоточила в Монголии, в районе Халхин-Гола, значительную группировку войск и, особенно, техники.
Первоначально на суше конфликт проходил в вялотекущем режиме, зато в воздухе разворачивались упорные бои. От господства в воздухе зависел успех в сражении в целом, так как с воздуха можно было парализовать снабжение неприятеля. В первых воздушных боях 27—28 мая было сбито 17 советских самолетов и только 1 японский самолет. Японские пилоты были очень хорошо подготовлены, но сравнительно немногочисленны. Подготовленного резерва пилотов у Японии не было. Москва же приняла срочные меры для исправления ситуации в воздухе. Уже 29 мая в район Халхин-Гола вылетела группа из 48 лётчиков-асов во главе с заместителем начальника ВВС РККА Яковом Смушкевичем. Почти все они имели опыт боев в Испании и Китае. Тем не менее, перелома в борьбе в воздухе пришлось ждать до начала августа. Так, 22 июня в воздушных боях японцы сбили 17 советских потеряв 7 своих самолетов. Ранним утром 27 июня японские самолеты нанесли внезапный удар по советским авиабазам Тамсак-Булак и Баин-Бурду-Нур и тыловому аэродрому Баин-Тумен, уничтожив 20 самолетов (почти все — в воздушных боях) и потеряв только 4 своих. Однако за этот удар командование Квантунской армии получило выговор от главного командования, поскольку Токио не хотел эскалации «Номонганского инцидента» (официальное наименование боев у Халхин-Гола в Японии).
В результате японской авиации было запрещено бомбить советские авиабазы. В июле с советской стороны появились более современные истребители И-153 «Чайка», которые могли на равных сражаться с японскими Ки-27. Появилась также эскадрилья из семи истребителей И-16П, вооруженных, помимо двух синхронных пулеметов, двумя крыльевыми 20-миллиметровыми пушками ШВАК. Их решили использовать в первую очередь в качестве штурмовиков. 8 июля в бой впервые вступили советские четырехмоторные бомбардировщики ТБ-3. Также применялись средние бомбардировщики СБ. И 29 июля произошел перелом в борьбе в воздухе. В этот день советские истребители сбили 6 японских и серьезно повредили 5, не потеряв ни одного своего. У Квантунской армии заканчивались как опытные пилоты, так и современные самолеты. В группировку же советской авиации на Халхин-Голе собрали лучших летчиков и самолеты со всей страны.
Велико было и численное превосходство советской авиации. Перед начавшимся 20 августа решающим советским наступлением против 580 советских самолетов японцы смогли выставить лишь около 190 машин. 20 августа советская авиация, не понеся потерь, провела ряд успешных налетов на японские позиции, уничтожив на аэродромах 6 и повредив 9 японских самолетов. 21 августа состоялось крупнейшее воздушное сражение. Японцы смогли уничтожить 12 самолетов, потеряв 6, но не смогли предотвратить бомбардировки своих войск. В последующие дни советские потери в воздухе резко упали — у японцев почти не осталось опытных пилоты, а уцелевшие асы были крайне утомлены. С 20 по 31 августа, когда окруженная японская группировка была уничтожена, японцы потеряли 43 самолета.
На земле Красная Армия тоже обладала подавляющим превосходством. 1-я армейская группа под командованием комкора Георгия Жукова насчитывала 69 тыс. советских и около 5 тыс. монгольских солдат и офицеров. Им противостояла японо-маньчжурская группировка в 28 тыс. военнослужащих. Правда, японцы считали, что советская дивизия по боеспособности равна лишь 80% японской, но советское превосходство все равно было слишком велико. У Жукова было 550 танков и 450 бронемашин, а также 4000 грузовиков, что обеспечивало подвижность его войск и их оперативное снабжение. У японцев, которыми командовал командир 23-й пехотной дивизии генерал-лейтенант Мититаро Комацубара, было только 73 танка и 64 танкетки и всего 1000 грузовиков. Основные силы японской армии вели войну с Китаем, и больше войск у Халхин-Гола японское командование не могло сосредоточить при всем желании. Большая часть японской группировки у Халхин-Гола оказалась в окружении. Его удалось бы предотвратить, если бы японские войска получили вовремя приказ на отход. Но командование Квантунской армии приказало им стоять до конца. 31 августа японская группировка в районе Халхин-Гола была уничтожена. Советские войска продолжать наступление не стали. 15 сентября было подписано соглашение между СССР, МНР и Японией, согласно которому боевые действия в районе реки Халхин-Гол прекращались с 13.00 16 сентября на тех позициях, которые войска сторон занимали к этому моменту. 15 сентября произошло и последнее воздушное сражение. 200 японских истребителей и бомбардировщиков пытались бомбить советскую авиабазу Тамцаг-Булак, но были перехвачены истребителями. Японцы потеряли 9 машин, советские ВВС — 6.
Потери в боях у Халхин-Гола советских войск составили 9652 убитых, умерших от ран и пропавших без вести. Еще 51 человек умер в результате болезней, несчастных случаев, катастроф и других небоевых причин. Советские потери ранеными составили 15 251 человек, а 2287 человек были госпитализированы из-за болезней. Потери монгольских войск составили 895 человек, из которых на убитых и умерших приходится 234 человека. Общие советские потери убитыми, умершими, ранеными, больными и пленными составили 27 330 человек, а вместе с монгольскими войсками — 28 225 человек. Японско-маньчжурские войска потеряли 8629 убитых, 842 умерших от ран, болезней и по иным причинам, 9087 раненых и 2350 больных, включая умерших от ран и болезней. Из плена вернулись 89 красноармейцев, 160 японцев и 44 маньчжура. Общие потери японцев и маньчжур составили 20 270 человек (в том числе 2895 маньчжур). Советское командование определяло потери противника в 61 тыс. человек, но всех войск у японцев у Халхин-Гола было вдвое меньше. Если потери сторон убитыми и умершими были почти равны (9937 с советско-монгольской стороны и 9471 — с японо-маньчжурской), то раненых у японцев было почти вдвое меньше. Это объяснялось тем, что японские военнослужащие, оказавшись в окружении, предпочитали погибнуть или покончить с собой, чтобы не сдаться в плен.
Советские ВВС безвозвратно потеряли 250 самолетов, в том числе 42 — по небоевым причинам. 436 машин были повреждены. Потери в людях составили 109 погибших (в том числе 88 — в воздушных боях), 65 пропавших без вести и 113 раненых. Японские ВВС потеряли безвозвратно 162 самолета. Еще 220 машин были повреждены. В ВВС Японии 163 человека погибли и 52 были тяжело ранены. Советские войска безвозвратно потеряли 253 танка и 133 бронемашины, японцы — 13 танков (еще 29 танков были повреждены, но потом отремонтированы) и почти все танкетки.
Граница между Монголией и Маньчжурией была установлена в мае 1942 года. Тогда Красная Армия терпела поражение на советско-германском фронте. Поэтому была принята японская версия границы, основанная на карте конца XIX века, — по реке Халхин-Гол, какой и была линия фактического контроля до начала конфликта. Но после капитуляции Японии в августе 1945 года была установлена советская версия границы между Монголией и Китаем — с монгольским плацдармом на восточном берегу Халхин-Гола.
Победа была одержана будущим маршалом Жуковым большой кровью и благодаря подавляющему превосходству в людях и технике. Эта победа укрепила как Георгия Константинович, так и Сталина в убеждении, что наступать надо, не считаясь с жертвами, тогда можно одержать быструю победу (решающее советское наступление завершилось за 12 дней). В результате в войне с Германией советские потери многократно возросли, а до победы пришлось идти долгих четыре года.