savaş ilanından bir süre sonra Rumen ordularıyla beraber Tuna Nehri'nin kuzeyinde toplanmaya başladı. Osmanlı ordusu da hazırlıklarını sürdürüyor, gönüllü askerler yazılıyordu. Bu süreçte Romen topçuları, nehirdeki Osmanlı gambotlarını dağıtmayı başardı. Böylece nehri savunan Osmanlı deniz gücü ortadan kalkmış oldu. Savaş ilanından iki ay sonra, 21 Haziran 1877 tarihinde Rus askerleri, tekneler ile nehri geçmeye başladı. Rusların nehri geçmesini önlemek ile görevlendirilen Osmanlı güçleri, zamanında yetişemedi. Ruslar nehri büyük bir direnişle karşılaşmadan aştı. Bu başarısızlık, avantajın Ruslara geçmesine sebep oldu. Zira Tuna'dan sonra daha büyük bir engel yoktu. 27 Haziran gecesi, Ziştovi'ye bağlanmak için gizlice bir köprü kuruldu.

Ruslar, nehri geçtikten beş gün sonra nehre en yakın yerler olan Ziştovi ile Niğbolu'ya taarruz etti. Ziştovi Muharebesi ve Niğbolu Muharebesini kolayca kazandılar. Balkan ana ordusu henüz yetişememişti ve Rus askerleri, her bakımdan Türk askerlerine göre üstündü. Savaşın başındaki bu başarısızlıktan dolayı Başkumandan Abdülkerim Nadir Paşa görevden alındı ve 18 Temmuz'da yerine Mehmet Ali Paşa getirildi. Bu genç paşanın böyle önemli bir göreve getirilmesi, subaylar arasındaki birliği bozdu. Tırnova ve Niğbolu'nun düşmesi, Türk kamuoyunda büyük üzüntüye ve umutsuzluğa neden oldu. Çünkü Osmanlının planı bozuluyordu. Plan şöyle idi: Süleyman Hüsnü Paşa'nın birlikleri, Şıpka geçidini geçecek ve kontrol altında tutacaktı. Kuzeydeki Osmanlı orduları da (Osman Paşa ile Ahmed Eyüb Paşa'nın orduları) Rus ana ordusunu kıskaca alarak durduracaktı. Süleyman Paşa'nın ana ordusu da yetişince, nehre doğru Türk taarruzu başlayacak ve Ruslar, Türk toprağından atılacaktı. Nehrin geçilmesinden birkaç hafta sonra, 17 Temmuz 1877 tarihinde Şıpka geçidi de düştü.. Vidin'deki Osman Paşa birlikleri Şıpka Geçidi düşünce yürüyüşe geçti. Plevne yönüne gidilecek, bölge kontrol altına alınacak ve Niğbolu da kurtarılacaktı.

Ruslar, Bulgar topraklarında bir hayli ilerlemesine rağmen, kuzeyde hala direnen ve başarılı olan Osmanlı bölgeleri vardı. Oldukça stratejik önemi olan Plevne ve Lofça, henüz işgal edilmemişti. Daha doğuda olan ve Doğu Tuna ordusu'nun kapısı olan Elena kasabası da Temmuz ayında Rus saldırısını püskürtmüştü. Osmanlı birlikleri Şıpka Geçidi'ni geri almak için çarpışırken General Yuri Şilder-Şuldner komutasındaki Rus birlikleri Osmanlı ordusunu Plevne'de abluka altına aldılar. Plevne Kalesinin komutanlığını Osman Nuri Paşa üstlenmişti. Kuşatmaya Rus generalleri Mihail Skobelev, Nikolay Kridener ve Kral I. Carol'un emrindeki Rumen askerleri de katıldı. Aslında Plevne'deki Osmanlı birliğinin amacı başkaydı; Niğbolu'ya gelinecek ve burada Rus ordusu durdurulacaktı. Fakat Niğbolu'ya Rus ana ordusunun girmesi, bir de Şıpka geçidinin düşmesi bu planı bozdu. Osman Nuri Paşa, yakınında bulunan Plevne'ye çekilmekle yetindi.
Plevne'deki Osmanlı orduları beklenmedik bir şekilde başarılı bir savunma koydular. Rus ordusu aylar boyunca taarruzlara devam etti. Fakat sonuç alamadılar ve çok fazla zayiat verdiler. Yaklaşık 5 ay boyunca Ruslar, bu kasabayı ele geçirmek için savaştı. Kuşatmanın ilk safhalarında tek yönlü taarruz uygulandı. Ağustos'ta Rus taarruzu geri püskürtüldü. Avrupa kamuoyunda Rusların yenileceği ve savaşı Osmanlıların kazanacağı söylenmeye başlandı. Rus ordusunda moralsizlik başladı. Plevne'ye güneydeki Lofça kasabasından da mühimmat ve takviye birlikleri geliyordu. Eylül ayına gelindiğinde Plevne'deki Osmanlı gücü 40.000 askeri bulmuştu. Rus generalleri, kasabayı tam bir kuşatma altına alma kararı aldılar. Bunun için Plevne'ye mühimmat ve takviye sağlayan Lofça'ya saldırıldı (Bkz. Lofça Muharebesi). Bu kasaba 3.Plevne Muharebesinden hemen önce kaybedildi. Buna rağmen 3.Plevne muharebesi Osmanlı zaferi ile sonuçlandı. Rus komutanlığı bunun üzerine Plevne'yi tamamen kuşatma kararı aldı. Radomirçe ve Teliş Mevziileri yoğun Rus saldırıları ile alınarak Plevne üzerindeki çember daraltıldı. Bunun yanında Gosif Gurko, 24 Ekimde Gorni Dubnik Muharebesi'ni kazanarak Sofya - Plevne arasındaki tek lojistik yoluda kesti. Böylece Plevne'ye giden tüm yollar kapanmış oldu. Buna rağmen Osmanlı direnişi devam etti. Erzağı, cephanesi biten Osmanlı askerleri, Rus taarruzlarına karşı bir süre daha direndi.Plevne'ye yapılan 13 Ekim ve 13-14 Kasımdaki Rus ve Romen kısmi saldırıları püskürtüldü. Osman Paşa, güneydeki Şıpka Geçidi Muharebeleri'ndeki Osmanlı taarruzlarından ümitliydi. Bu saldırılar başarıya ulaşırsa, Plevne'ye yardım gelebilir ve Rus ordusu dağılabilirdi. Fakat Osmanlı taarruzları sonuç almıyordu.
2 Ekim'de başarısız bulunan Mehmet Ali Paşa da başkomutanlık görevinden alınarak yerine Süleyman Hüsnü Paşa getirildi.Süleyman Hüsnü Paşa,Deli Fuat Paşa ile birlikte Elena ve Tırnova, Maçka yönünde kuzey Bulgaristan'da Ruslara saldırılarda bulundu. 4 Aralık 1877'de Osmanlı Ordusu Elena Muharebesini kazansa da bu muharebedeki zafer fazla bir yarar getiremedi. Zira Maçka yönündeki Osmanlı saldırıları bir ilerleme sağlayamadı. Artık gücü kalmayan Osmanlı askerleri, çareyi 9 Aralık günü yarma harekatına girmekte buldu. Rusların ilk safları yarıldı fakat Osmanlı kaybı çok artmıştı ve Rusların gücü çok fazlaydı. Osman Nuri Paşa, 10 Aralık 1877 tarihinde teslim olmayı kabul etti. Plevne Savunması, yaklaşık 35.000 Rus kaybına sebep olmuştu. Plevne, Rus ana ordusunu durduran önemli bir noktaydı. Buranın da düşmesi, İstanbul'un yolunu açtı.. Bununla birlikte Süleyman Paşa komutasındaki Osmanlı ordusu Tırnova'yı ele geçirme ve Plevne'ye yardım götürme amaçlı Maçka Muharebesini 12 Aralık 1877'de kaybederek zaten Plevne teslim olmasa bile, Plevne'deki kuşatmayı yarma ve Bulgaristan'dan Rusları çıkarmadaki son fırsatı da harcamıştı.Böylece Kuzey Bulgaristan'da Ruslar mevziilerini sağlamlaştırıp saldırıya geçti. Plevne'nin düşmesinden sonra Bulgar halkı, Türk yaralılarını katletmeye başladı, Sırplar da Osmanlılara karşı yoğun saldırıya geçtiler. Türk kontrolündeki Sırbistan'ın bazı güney bölgelerini ele geçirdiler.

Plevne'nin doğusunda, Ahmed Eyüb Paşa komutasındaki Osmanlı ordusu direniyordu. Elena'da Osmanlı başarısından sonra Rus ordusu taarruza devam etmişti. Rusçuk yönünden de başarılı bir direniş gerçekleşti. Fakat Rus ordusu, ani bir saldırı ile Köstence'ye girdi. 1878 yılına girildiğinde Rus ordusu, Plevne engelini de kaldırmıştı ve Ahmed Eyüb Paşa ordularına daha fazla yoğunlaştı. Köstence ve Rusçuk yönünden saldırıya geçtiler. Çapraz ateşe düşen Osmanlı ordusu fazla direnemedi. Dobruca ve Kavarna art arda düştü. Dağılmış Osmanlı askerleri, Varna'da teknelere binerek bölgeyi terk etti. Böylece Balkanlardaki Osmanlı direnişi son bulmuş oldu. Avrupa kamuoyunda savaşı Rusların yeneceği fikri benimsendi. Zira Şıpka Geçidi Muharebeleri de ağır Osmanlı yenilgisiyle sonuçlanmıştı. Plevne muharebesi devam ederken İosif Gurko komutasındaki sadece bir Rus tugayı, geçidi ele geçirmişti. Süleyman Hüsnü Paşa komutasındaki yaklaşık 30.000 kişilik Osmanlı tümeni de geçidin etrafını sarmış ve Ruslar zor durumda kalmıştı. Bu durum sebebiyle Süleyman Paşa, Osmanlı kamuoyunda kahraman olarak görülüyordu. Türk taarruzları Ocak'a kadar devam etti. Rus gücü 60.000'i buldu ve Ocak ayında Osmanlı birlikleri ani bir Rus saldırısına uğradı. Ağır zayiat veren Osmanlı askerleri, bölgeyi terk etti. Böylece Edirne'nin de yolu açılmış oldu. Şıpka geçidi, savaşın kaderini belirleyecek önemli bir geçitti. Savaş Osmanlı zaferiyle sonuçlansaydı, Plevne kuşatması kesin Osmanlı zaferiyle sonuçlanabilir ve Ruslar hızla çekilebilirdi.

Kafkasya'da Rus ordusunun 75.000 askeri Rusya'nın Kafkasya valisi Grandük Mihail Nikolayeviç'in komutasında idi. Nikolayeviç'in emrindeki alt düzeydeki komutanlar ise çoğu Ermeni asıllı olan Beybut Şelkovnikov, Mihail Tarieloviç Loris-Melikov, İvan Davidoviç Lazarev ve Arshak Ter-Gukasov ile Rus asıllı Vasiliy Aleksandroviç Geyman idi. Rus ordusu yalnız değildi. Gürcüler Ermeniler,Terek Kazakları tarafından destekleniyorlardı. Osmanlı ordusu ise Ahmed Muhtar Paşa'nın komutasındaki 80.000 askerden oluşuyordu. Ruslar'ın kendi geliştirdikleri top mermileri bulunuyordu. Osmanlı'da ise İngiliz yapımı toplar mevcut idi. Rus topçu birlikleri, gelişme döneminde Prusyalı subaylarca eğitilmiş tecrübeli birliklerdi. Kafkas Rus ordusu, Akkilise - Gümrü ve Iğdır yönünden taarruza geçti. Osmanlı birlikleri ise Kobuleti - Kars - Ardahan ve Doğubayazıt arasında bulunuyordu.

Ruslar için Kafkasya cephesi, Tuna cephesi kadar başarılı olamadı. Çünkü yeterince ilerleme şansı bulamamışlardı. 27 Nisan 1877 tarihinde Doğubayazıt Rus işgaline girdi. Fakat Osmanlı vatandaşı müslüman grupları saldırıları sebebiyle ilerlemeleri zorlaştı. Arazinin aşırı dağlık olması, gerilla saldırıları ve Osmanlı direnişleri, Rusları durdurmaya yetiyordu. Kafkasya cephesinde Ahmed Muhtar Paşa komutasındaki Osmanlı birlikleri, General Loris-Melikov komutasındaki Ruslara karşı uzun süre direndi. 17 Mayıs'ta ise Ardahan Ruslarca işgal edildi. Böylece Rus ordusu stratejik önemi büyük Kars'ın gerisine sızdı. Mayıs ayının son haftasında Kars kuşatıldı. Fakat Kars gerisinde bulunan Halyaz ve Zivin bölgelerinde Osmanlı başarısı gerçekleşti. Daha sonra Gedikler Muharebesi (25 Ağustos 1877) ve Yahniler Muharebesi (4 Ekim 1877) de Osmanlı zaferiyle sonuçlandı. Böylece Kars'taki Rus tehlikesi savuşturuldu. Alacadağ Muharebesi'ne kadar Rusların kaybı 10.000 kadardı. Osmanlı kaybı ise yaklaşık 2.500 idi.

15 Ekim'deki Digor'da gerçekleşen Alacadağ Muharebesi'nde Ruslar takviye ile Osmanlı savunma hattını arkadan çevirdi ve Osmanlı'nın 5-6.000 ölü ya da yaralı ile 8.500 savaş esiri kaybı oldu. Kafkas cephesindeki Osmanlı kuvvetleri çözülmeye başladı. 17 Kasım 1877 tarihinde Kars, tekrar kuşatıldı. Şehri yaklaşık 25.000 Osmanlı askeri savunuyordu. Cephane ve sayı üstünlüğü olan Rus ordusu, şehrin etrafını sarmıştı. Kars işgal edildi ve Osmanlı kaybı yaklaşık 2.500 ölü idi. Rusların kaybı da o kadardı ve Türkler, geri kalan askerlerini esir vermişti. Ahmed Muhtar Paş