30 марта начался второй этап операции, который преследовал целью захват важных стратегических объектов и опорных пунктов противника. Была изменена тактика боевых действий. Вместо одновременных атак крупными силами с разных направлений вьетнамцы стали применять «тактику малых потерь». Сущность ее заключалась в следующем: от ближайшего укрытия к опорному пункту противника - объекту атаки - отрывался скрытый ход сообщения. Когда до объекта атаки оставалось несколько десятков метров, начинали отрывать траншею, которую использовали в качестве исходной позиции при штурме опорного пункта. Этими ходами сообщений некоторые опорные пункты отсекались от основных позиций, что зачастую вынуждало противника оставлять опорные пункты и отходить без боя. После овладения ближайшим пунктом ход сообщения наращивали далее в глубину обороны противника, к следующему опорному пункту. Пользуясь такой тактикой на всем фронте наступления, войска Народной армии в течение апреля 1954 года взяли в конечном итоге местный аэродром. Благодаря этому оборона французов была расчленена на две изолированные группировки.
Потери защитников Дьенбьенфу росли. Число убитых и раненых приблизилось к 5-тысячной отметке. Эвакуация раненых была крайне затруднена. Моральный дух французских солдат и офицеров был заметно подорван. Иссякали запасы продовольствия и боеприпасов. Грузы, сбрасываемые с самолетов для осажденного гарнизона, зачастую падали в расположение вьетнамских войск. Генерал Наварр предложил разделить окруженные французские войска на три группы и пробиваться в Лаос, до границы с которым было каких-то 20 километров, однако ничего не получилось. Спасать французов принялись американцы, начав переброску по воздуху вооружения и продовольствия со своих баз в Японии и на Филиппинах. Но и это не повлияло на общую расстановку сил.
В ночь на 1 мая 1954 года начался третий, завершающий этап боевых действий. Французские войска терпели одно поражение за другим. В 17 часов 7 мая на командном пункте французского генерала де Кастри был водружен красный флаг Демократической Республики Вьетнам. Генерал вместе с уцелевшими солдатами и офицерами сдался в плен. После 55-дневных боев враг был разгромлен - ВНА праздновала победу.
Французский экспедиционный корпус в боях у Дьенбьенфу потерял 21 пехотный и парашютный батальоны, 10 отдельных рот и подразделений поддержки; всего 16200 человек, из них 3890 убитыми, 12310 пленными. Вьетнамцы уничтожили 62 самолета, 74 автомашины, 20 артиллерийских орудий, то есть четвертую часть лучших частей экспедиционного корпуса, в том числе все парашютные батальоны и немецкие подразделения Иностранного легиона. Все вьетнамцы, служившие французам, были расстреляны.
Победа под Дьенбьенфу, получившим название «Вьетнамский Сталинград», ознаменовала коренной поворот в ходе освободительной войны вьетнамцев и во многом способствовала скорейшему заключению перемирия в Индокитае. Зрелость и возросшее боевое мастерство командиров и бойцов Народной армии Вьетнама сокрушили стратегию опытных французских генералов. Во время этой «грязной войны» Народная армия активными боевыми действиями вынудила французское командование раздробить свои силы, а резервы, собранные для решающего наступления, израсходовать по частям. Имевшееся вначале численное и материальное превосходство французов было в значительной степени нейтрализовано партизанскими действиями вьетнамских войск, а также тем, что командование ВНА сумело поставить противника в такие условия, в которых тот не смог реализовать свой перевес в военно-техническом отношении. В итоге была освобождена значительная часть территории Северного Вьетнама.
Серьезные поражения в ходе боевых действий, огромные людские потери, а также настойчивые требования мировой общественности во главе с Советским Союзом положить конец колониальной войне во Вьетнаме привели к тому, что 9 июня 1954 года французское правительство Ланьеля получило вотум недоверия и ушло в отставку. Новый премьер-министр Франции Пьер Мендес-Франс выступил с заявлением, в котором заявил, что добьется мира в Индокитае в течение месяца.
20-21 июля 1954 года на международном совещании в Женеве с участием великих держав были подписаны соглашения, признавшие право народов Вьетнама, Лаоса и Камбоджи на независимость, суверенитет и территориальную целостность.
Боевые действия во Вьетнаме прекратились 27 июля. Была установлена временная демаркационная линия южнее 17-й параллели по реке Бенхай. Свыше 80 процентов территории Вьетнама и более 18 (из 23) миллионов человек были освобождены из-под власти колонизаторов. Воюющие стороны взяли обязательство отвести свои военные формирования от демаркационной линии в течение 30 дней. Предусматривалось проведение в июле 1956 года всеобщих выборов для объединения вьетнамского народа. Отныне Женевские соглашения запрещали использование территории стран Индокитая в агрессивных целях, не разрешали ввод во Вьетнам иностранных войск и ввоз оружия.