В июле, когда немецкие намерения стали совершенно ясны советскому командованию, оно разработало планы по обороне Сталинграда. 12 июля был создан Сталинградский фронт, командующий — маршал Тимошенко, с 23 июля — генерал-лейтенант Гордов. В его состав вошли выдвинутые из резерва 62-я армия под командованием генерал-майора Колпакчи, 63, 64-е армии, также 21, 28, 38, 57-я общевойсковые и 8-я воздушная армии бывшего Юго-Западного фронта, а с 30 июля — 51-я армия Северо-Кавказского фронта. Сталинградский фронт получил задачу, обороняясь в полосе шириной 530 км (по реке Дон от Бабки 250 км северо-западнее города Серафимовича до Клетской и далее по линии Клетская, Суровикино, Суворовский, Верхнекурмоярская), остановить дальнейшее продвижение противника и не допустить его выхода к Волге. К 17 июля Сталинградский фронт имел в своем составе 12 дивизий (всего 160 тыс. человек), 2200 орудий и миномётов, около 400 танков и свыше 450 самолётов. Кроме того, в его полосе действовали 150—200 бомбардировщиков дальней авиации и до 60 истребителей 102-й авиационной дивизии ПВО (полковник И. И. Красноюрченко). Таким образом, к началу Сталинградской битвы противник имел превосходство над советскими войсками в людях в 1,7 раза, в танках и артиллерии — в 1,3 и в самолётах — более чем в 2 раза.
Для создания нового фронта обороны советским войскам после выдвижения из глубины приходилось с ходу занимать позиции на местности, где отсутствовали заранее подготовленные оборонительные рубежи. Большинство соединений Сталинградского фронта представляли собой новые формирования, которые ещё не были должным образом сколочены и, как правило, не имели боевого опыта. Ощущался острый недостаток в истребительной авиации, противотанковой и зенитной артиллерии. Во многих дивизиях не хватало боеприпасов и автотранспорта.
Общепризнанной датой начала битвы считается 17 июля. Однако историк Алексей Исаев обнаружил в журнале боевых действий 62-й армии данные о двух первых столкновениях, произошедших 16 июля. Передовой отряд 147-й стрелковой дивизии в 17.40 был обстрелян возле хутора Морозова противотанковыми пушками противника и уничтожил их ответным огнём. Вскоре произошло более серьёзное столкновение:
«В 20.00 четыре немецких танка скрытно подошли к хутору Золотой и открыли огонь по отряду. Первый бой Сталинградской битвы длился 20-30 минут. Танкисты 645-го танкового батальона заявили, что уничтожено 2 немецких танка, 1 противотанковая пушка и ещё 1 танк подбит. Видимо, немцы не рассчитывали столкнуться сразу с двумя ротами танков и послали вперед всего четыре машины. Потери отряда составили один Т-34 сгоревшим и два Т-34 подбитыми. Первый бой кровопролитного многомесячного сражения не был ознаменован ничьей смертью — людские потери двух танковых рот составили 11 человек ранеными. Таща за собой два подбитых танка, отряд вернулся назад».
17 июля на рубеже рек Чир и Цимла передовые отряды 62-й и 64-й армий Сталинградского фронта встретились с авангардами 6-й немецкой армии. Взаимодействуя с авиацией 8-й воздушной армии (генерал-майор авиации Т. Т. Хрюкин), они оказали упорное сопротивление противнику, которому, чтобы сломить их сопротивление, пришлось развернуть 5 дивизий из 13 и затратить 5 суток на борьбу с ними. В конце концов враг сбил передовые отряды с занимаемых позиций и подошёл к главной полосе обороны войск Сталинградского фронта. Сопротивление советских войск заставило нацистское командование усилить 6-ю армию. К 22 июля в ней было уже 18 дивизий, насчитывавших 250 тыс. человек боевого состава, около 740 танков, 7,5 тыс. орудий и миномётов. Войска 6-й армии поддерживали до 1200 самолётов. В итоге соотношение сил ещё более увеличилось в пользу противника. Например, в танках он теперь имел двукратное превосходство. Войска Сталинградского фронта к 22 июля имели 16 дивизий (187 тыс. человек, 360 танков, 7,9 тыс. орудий и миномётов, около 340 самолётов).
На рассвете 23 июля в наступление перешла северная, а 25 июля и южная ударные группировки противника. Используя превосходство в силах и господство авиации в воздухе, враг прорвал оборону на правом фланге 62-й армии и к исходу дня 24 июля вышел к Дону в районе Голубинского. В результате до трёх советских дивизий попали в окружение. Противнику также удалось потеснить войска правого фланга 64-й армии. Для войск Сталинградского фронта сложилась критическая обстановка. Оба фланга 62-й армии оказались глубоко охваченными врагом, а выход его к Дону создал реальную угрозу прорыва нацистских войск к Сталинграду.
К концу июля немцы оттеснили советские войска за Дон. Линия обороны протянулась на сотни километров с севера на юг вдоль Дона. Чтобы пробить оборону вдоль реки, немцам пришлось использовать помимо своей 2-й армии, армии своих итальянских, венгерских и румынских союзников. 6-я армия была всего лишь в нескольких десятках километров от Сталинграда, и 4-я танковая, находясь на юге от него, повернула на север, чтобы помочь взять город. Южнее группа армий «Юг» (А) продолжала углубляться дальше на Кавказ, но её наступление замедлилось. Группа армий «Юг» А была слишком далеко на юге и не могла обеспечить поддержку группе армий «Юг» Б на севере.
28 июля 1942 года народный комиссар обороны И. В. Сталин обратился к Красной Армии с приказом № 227, в котором потребовал усилить сопротивление врагу и во что бы то ни стало остановить его наступление. Предусматривались самые жёсткие меры к тем, кто проявит в бою трусость и малодушие. Намечались практические меры по укреплению морально-боевого духа и дисциплины в войсках. «Пора кончать отступление, — отмечалось в приказе. — Ни шагу назад!» В этом лозунге воплощалась сущность приказа N° 227. Командирам и политработникам ставилась задача довести до сознания каждого воина требования этого приказа.
Упорное сопротивление советских войск вынудило нацистское командование 31 июля повернуть с Кавказского направления на Сталинград 4-ю танковую армию (генерал-полковник Г. Гот). 2 августа её передовые части подошли к Котельниковскому. В этой связи создалась прямая угроза прорыва противника к городу с юго-запада. Развернулись бои на юго-западных подступах к нему. Для укрепления обороны Сталинграда по решению командующего фронтом на южном фасе внешнего оборонительного обвода была развёрнута 57-я армия. В состав Сталинградского фронта передавалась 51-я армия (генерал-майор Т. К. Коломиец, с 7 октября — генерал-майор Н. И. Труфанов).
Тяжелой была обстановка в полосе 62-й армии. 7—9 августа противник оттеснил её войска за реку Дон, а четыре дивизии окружил западнее Калача. Советские воины вели бои в окружении до 14 августа, а затем мелкими группами стали пробиваться из окружения. Подошедшие из Резерва Ставки три дивизии 1-й гвардейской армии (генерал-майор К. С. Москаленко, с 28 сентября — генерал-майор И. М. Чистяков) нанесли по вражеским войскам контрудар и остановили их дальнейшее продвижение.
Таким образом, план врага — стремительным ударом с ходу прорваться к Сталинграду — был сорван упорным сопротивлением советских войск в большой излучине Дона и их активной обороной на юго-западных подступах к городу. За три недели наступления противник смог продвинуться лишь на 60—80 км. Исходя из оценки обстановки нацистское командование внесло в свой план существенные коррективы.
19 августа нацистские войска возобновили наступление, нанеся удары в общем направлении на Сталинград. 22 августа 6-я немецкая армия форсировала Дон и захватила на его восточном берегу, в районе Песковатки, плацдарм шириной 45 км, на котором сосредоточилось шесть дивизий. 23 августа 14-й танковый корпус противника прорвался к Волге севернее Сталинграда, в районе посёлка Рынок, и отрезал 62-ю армию от остальных сил Сталинградского фронта. Накануне вражеская авиация нанесла массированный удар по Сталинграду с воздуха, совершив около 2 тыс. самолёто-вылетов. В результате город подвергся страшным разрушениям — целые кварталы были превращены в руины или же попросту стёрты с лица земли.
13 сентября противник перешёл в наступление по всему фронту, пытаясь захватить Сталинград штурмом. Сдержать его мощный натиск советским войскам не удалось. Они были вынуждены отступить в город, на улицах которого завязались ожесточённые бои.
В конце августа и сентябре советские войска провели ряд контрударов в юго-западном направлении для отсечения соединений 14-го танкового корпуса противника, прорвавшегося к Волге. При нанесении контрударов наши войска должны были закрыть прорыв немцев на участке станции Котлубань, Россошка и ликвидировать так называемый «сухопутный мост». Ценой громадных потерь наши войска сумели продвинуться только на несколько километров.
«В танковых соединениях 1-й гвардейской армии из 340 танков, которые имелись к началу наступления 18 сентября, к 20 сентября осталось только 183 исправных танка с учетом пополнения».