Быстрыми марш-бросками Дибич достиг селения Мадры и тем самым отрезал великому визирю обратный путь к крепости Шумла. К Мадрам незамедлительно подошел и отряд генерала Рота, оставивший в Праводах часть своих сил с артиллерией.
Решид-паша, осадивший Праводы, узнал о подходе главных сил русской армии только 29 мая. Это известие для султанского полководца оказалось большой неожиданностью. Турецкие лазутчики просмотрели приближение противника. Теперь великому визирю стало трудно избежать большого полевого сражения, и он, сняв осаду Правод, повернул войско в сторону позиций русской армии.
30 мая турецкая армия уже стояла на горах перед узким проходом на равнину – дефиле Кулевчи, всего в 16 километрах от Шумлы. Русская 30-тысячная армия при 146 орудиях преградила ей путь. Около 11 часов утра сражение у кулевчинских высот началось артиллерийской канонадой и захватом Иркутским гусарским полком одной из высот, откуда отступила вражеская пехота. Но вскоре туркам удалось полностью уничтожить один из батальонов Муромского пехотного полка, и они стали спускаться на равнину.
Однако там турецкая пехота попала под огонь русской конной артиллерии и штыковые атаки русских. Волей-неволей туркам пришлось отойти на исходные позиции в горах: прорваться к крепости Шумла великому визирю не удалось.
Перед вечером Дибич, сменив полки первой линии, понесшие немалые потери, свежими силами неожиданно для неприятеля начал общую атаку их позиций на высотах. Сражение возобновилось артиллерийской дуэлью, в которой более меткими оказались русские пушкари – в расположении турецких батарей начали взрываться зарядные ящики.
Эти страшные взрывы вызвали такую панику в армии великого визиря, что она бросилась бежать по одной-единственной в горах дороге. Русские пехотинцы и кавалеристы неотступно преследовали бежавших на протяжении 8 верст.
В итоге Кулевчинского сражения огромная армия Решид-паши перестала существовать как боевая единица: она потеряла более 5 тысяч человек убитыми, полторы тысячи пленными, походный лагерь и весь обоз, знамена и 43 орудия из 47 имевшихся. Остатки султанской армии рассеялись по окрестным горам. Потери победителей составили погибшими 32 офицера и 1239 нижних чинов.
За блестящую победу при Кулевчах генерал от инфантерии И.И. Дибич удостоился от императора Николая I сразу двух наград: ордена Святого Георгия 2-й степени и 6 орудий, отбитых в сражении у неприятеля.
Когда русская армия из-под Кулевчи подошла к крепости Шумла, там уже находился избежавший пленения Решид-паша. Великий визирь успел усилить поредевший крепостной гарнизон 12 полками регулярной пехоты и другими войсками, снятыми с обороны береговой линии на Черном море и горных проходов через Балканы. Об этом русскому полководцу сообщили разведчики-болгары.
Тогда Дибич предпринял свой знаменитый в военной истории маневр. Он совершил стремительный бросок через Балканские горы, его войска двигались тремя колоннами по двум горным маршрутам. Для участия в Балканском походе главнокомандующий выделил всего две пятых действующей армии: 30 тысяч штыков и 7 тысяч конницы при 148 орудиях. В тылу у него оставалась вражеская крепость Шумла, которую требовалось бдительно сторожить.
Русские войска преодолели с боями три параллельных хребта Малых Балкан и 12 июля овладели приморским городом Бургас. Случилось то, чего доселе не было в прежних русско-турецких войнах: боевые действия с дунайских границ Оттоманской империи и севера болгарской земли переместились в ее внутренние области.
Теперь неприятельские города-крепости сдавались русским без боя. Вставший было на их пути сильный корпус Ибрагим-паши оказался разбитым наголову. К болгарскому побережью подошел из Севастополя Черноморский флот, который в случае необходимости поступал под начальство армейского главнокомандующего. В те дни генералу Красовскому еще раз удалось выманить великого визиря за крепостные стены в поле и нанести ему поражение.
Заняв город Сливен, Дибич, дав армии на отдых всего один день, двинулся к столице Блестящей Порты и без боя захватил по пути Адрианополь, считавшийся тогда вторым по значению городом Турции: султанские войска при приближении русских бежали из него. В Константинополе началась паника, поскольку столицу защищать было некому. Ее гарнизон состоял всего из 28 тысяч плохо обученных регулярных войск и местных ополченцев.
Османская империя, державшая на границах с Россией две огромнейшие армии – в Северной Болгарии и на Кавказе, не могла оборонять собственную столицу. Султан Махмуд II пошел на переговоры. 2 сентября 1829 года в древнем Адрианополе (ныне Эдирне), в загородном султанском дворце, где расположился штаб Дибича, был подписан мирный договор России с Турцией. Война победно завершилась.
За свой полководческий подвиг Иван Иванович получил почетнейшее проименование, став Дибичем-Забалканским. Его грудь украсил орден Святого Георгия 1-й степени. И еще ему был пожалован генерал-фельдмаршальский жезл.