Родом из крестьян Ярославской губернии. Обучался в Торговой школе им. Александра III.
В августе 1915 г. выдержал экзамен, поступив в Школу драматического искусства («Школа трех Николаев»), которая следующей весной преобразовалась во Вторую студию.
В 1916 году начал работать в МХТ. В 1916—1924 годах был одновременно актёром 2-й студии МХТ.
Первая роль Баталова — Петя («Зелёное кольцо» Гиппиус, 1916); сыграл во 2-й студии роль Франца Мора.
В 1927 году Баталов исполнил в МХТ свою первую большую роль — Фигаро. Сыгранный живо, темпераментно, с подлинным комедийным блеском и лёгкостью, Фигаро в исполнении Баталова был человеком из народа, отстаивавшим своё право на счастье. Огромное сценическое обаяние Баталова, присущие ему оптимизм, острое чувство современности, искренность, природный юмор, темперамент особенно ярко проявились в роли простого русского парня Васьки Окорока («Бронепоезд 1469», 1927), — "Горячий, буйный, весёлый образ создает Баталов", — писал А.В. Луначарский («Вечерняя Москва», 26 февраля 1927 года).
Большой мастер внутреннего перевоплощения, Баталов в 1929 году создал глубоко сатирический образ анархиста-мародёра матроса Рубцова («Блокада» Вс. Иванова). Среди ролей Баталова: Луп Клешнин («Царь Фёдор Иоаннович» А.К. Толстого), Медведев («На дне»), Лопахин («Вишнёвый сад»). Последняя работа Баталова в театре — роль Собакевича («Мёртвые души» по Гоголю, 1933).
Баталов много снимался в кино (с 1923); в созданных им образах Павла Власова ("Мать", 1926), начальника трудовой коммуны Сергеева ("Путёвка в жизнь", 1931), вошедших в историю советского киноискусства, с большой силой звучала тема человека, строящего новый мир, новое общество.
В ноябре 1921 года женился на актрисе Второй студии МХТ Ольге Андровской. Это была счастливая супружеская пара. В их радушном доме любили собираться актеры, писатели, поэты.
С 1933 года преподавал актёрское мастерство в ГИКе и ЦЕТЕТИСе.
В 1923 году Баталов заболел туберкулёзом, ставшим для него роковым. Из-за болезни он в течение полугода не работал в театре. Однако уже в 1924 году снялся в своём первом кинофильме — «Аэлита» — в роли красноармейца Гусева. Болезнь не отступала, и 18 февраля 1935 года состоялось последнее выступление Баталова на сцене — в образе не унывающего Фигаро. Осенью 1935 года Николай Баталов уехал на лечение в Закопане (Польша), лечился в санаториях на Северном Кавказе, в Италии. Но безрезультатно.
3 мая 1937 года Н.П. Баталов был награждён орденом Трудового Красного Знамени.
Скончался Николай Петрович 10 ноября 1937 года. Похоронен в Москве на Новодевичьем кладбище