В 10 часов утра битва началась артиллерийским огнем союзных батарей и наступлением союзников на селение Вахау. На этом направлении Наполеон отбил все их атаки. В это время центр Богемской армии пытался пересечь реку Плейсу, чтобы ударить в обход левого фланга французов. Но противоположный берег реки был уставлен орудиями и усеян французскими стрелками, которые не дали форсировать реку. Первую половину дня на всех участках сражения битва шла с переменным успехом. Незадолго до 15.00 батарея французского генерала Друо обрушила ураганный огонь на место временного прорыва, который сделали в оборонительной линии Наполеона союзные войска. Ровно в три часа началась массированная атака пехоты и кавалерии. Против 100 эскадронов Мюрата выстроились в каре несколько батальонов принца Вюртембергского и открыли картечный огонь. Однако французские кирасиры и драгуны при поддержке пехоты смяли русско-прусскую линию, опрокинули гвардейскую кавалерийскую дивизию и прорвали центр союзников. Они оказались недалеко от ставки союзного командования. Бонапарт даже решил, что победа уже практически одержана, и приказал звонить во все колокола в Лейпциге. Но сражение продолжилось.
Александр I послал в бой батарею Сухозанета, дивизию Раевского и прусскую бригаду Клейста. Свежие кавалерийские дивизии остановили Мюрата и закрыли брешь в союзных позициях. Наполеон выслал к ослабленному центру союзников силы пешей и конной гвардии. В это время австрийцы предприняли атаку на правый фланг противника, в связи с чем Наполеон был вынужден слать подкрепления стоявшему там Понятовскому. Австрийцы были отброшены, а австрийский генерал граф Мервельд попал в плен.
На другом участке битвы прусский генерал Блюхер атаковал войска маршала Мармона, который с 24 тысячами солдат сдерживал его натиски. Деревни Мекерн и Видерич в течение дня неоднократно переходили из рук в руки. Когда первый день сражения закончился, солдаты Блюхера сделали себе заслоны из трупов убитых, полные решимости не отдавать французам захваченных территорий.
Первый день битвы не выявил победителей, хотя потери с обеих сторон были огромны (около 60–70 тысяч человек). А в ночь с 16 на 17 октября к Лейпцигу подошли свежие силы Бернадота и Беннигсена (около 110 тысяч человек). Французский же император получил лишь 15 тысяч подкрепления. Теперь союзники имели двойное численное преимущество над силами Наполеона. 17 октября обе стороны подбирали раненых и хоронили убитых. Наполеон вызвал к себе пленного генерала Мервельда и отпустил его с просьбой передать союзникам предложение мира, но ответа не последовало. Бонапарт хотел было отступить к реке Зале, но не успел – в 8 утра 18 октября союзники возобновили наступление. Сражение в этот день выдалось еще более горячим, чем 16 октября. Деревни переходили из рук в руки по несколько раз, приходилось штурмовать или защищать каждый дом, каждую улицу.
На левом фланге французов русские солдаты графа Ланжерона неоднократно штурмовали деревню Шелфельд, дома и кладбище которой, обнесенные каменной стеной, были прекрасно приспособлены к обороне. Дважды отброшенный Ланжерон в третий раз повел своих солдат в штыковую атаку и после рукопашной схватки овладел селением. Однако резервы маршала Мармона выбили русских с занятой позиции. Жестокая схватка кипела у деревни Пробстейд в центре французской позиции. Корпуса генерала Клейста и генерала Горчакова к 15 часам ворвались в деревню и начали штурмовать укрепленные дома. Тогда в дело была брошена старая гвардия, которую вел сам Наполеон. Под ударами гвардии неприятельские линии были готовы рассыпаться, но в самый разгар битвы вся саксонская армия, сражавшаяся в рядах наполеоновских войск, перешла на сторону союзников и развернула свои пушки против недавних партнеров. Этот момент стал одним из ключевых факторов поражения Наполеона в сражении при Лейпциге, хотя, конечно, куда важнее было подавляющее численное преимущество коалиционеров.
Бой продолжался до ночи. К концу дня французам удалось удержать в своих руках все ключевые позиции обороны. Однако Наполеон понимал, что еще один день он не выстоит, и поэтому в ночь с 18 на 19 октября отдал приказ к отступлению. Армия отходила через Лейпциг за реку Эльстер. На рассвете в город двинулись противники Наполеона.
Город защищали солдаты Понятовского и Макдональда, и бой за него шел с большими потерями с обеих сторон. Лишь к середине дня удалось захватить предместья. Среди французов началась паника, в результате которой единственный мост через реку Эльстер был преждевременно взорван охранявшими его солдатами.