Wystąpienie zbrojne zostało zainicjowane w nocy o godzinie 3.30, a poprzedziło je zajęcie koszar austriackiego 15. pułku, w których licznie służyli Ukraińcy. W całym mieście stacjonowało w tym czasie około 12 tys. żołnierzy narodowości ukraińskiej, którzy służyli głównie w austriacko-węgierskich oddziałach żandarmerii polowej, w tzw. wojskowej policji miejskiej i garnizonowej. Nad ranem żołnierze ukraińscy biorący udział w spisku pod dowództwem mjr. Dmytra Wytowśkiego, korzystając z przychylności austriackich władz wojskowych, działając w imieniu Ukraińskiej Rady Narodowej, zajęli miasto i obsadzili większość gmachów publicznych (urzędy władz rządowych, autonomicznych i miejskich), a także budynki pocztowe i banki. W obiektach tych oraz na ważnych placach i skrzyżowaniach rozlokowano placówki wojskowe. Proklamowano utworzenie Zachodnioukraińskiej Republiki Ludowej (ZURL) ze stolicą we Lwowie. Na ścianach domów i słupach ogłoszeniowych pojawiły się odezwy do ludności.
Walki polsko-ukraińskie o Lwów i Galicję Wschodnią trwały ponad osiem miesięcy i kosztowały życie około 10 tys. Polaków i 15 tys. Ukraińców walczących z bronią w ręku oraz setek ofiar cywilnych.
Podobne wystąpienia miały miejsce w innych miastach garnizonowych Galicji, m.in. w Stanisławowie, Tarnopolu, Brzeżanach, Złoczowie i Kołomyi. Ważną rolę w ukraińskim zrywie miał odegrać Przemyśl, w którym zamierzano wysadzić mosty kolejowe na Sanie, aby w ten sposób uniemożliwić odsiecz polskich oddziałów. Miasto wprawdzie zostało przejściowo zajęte przez Ukraińców, ale mosty nie zostały zniszczone.
Zajęcie Lwowa przez Ukraińców zaskoczyło radę miejską złożoną z Polaków oraz polskie organizacje wojskowe, dlatego pierwsze walki w mieście rozpoczęły się całkowicie spontanicznie. Pierwszym ośrodkiem polskiego oporu stała się szkoła im. Henryka Sienkiewicza na zachodnim skraju miasta, w którym stacjonował oddział kpt. Zdzisława Tatara-Trześniowskiego. To tam właśnie, po odparciu ukraińskiego natarcia zaczęli napływać ochotnicy, wśród nich kobiety, młodzież i lwowscy gimnazjaliści, którzy ze względu na waleczność zyskali sobie miano „lwowskich orląt”. Zbiórka ochotników odbywała się także w Domu Akademickim i Domu Techników przy ul. Wuleckiej. Pierwszego dnia walk było w sumie blisko 100 ochotników, ale uzbrojonych tylko w kilka starych karabinów. Wojsko złożone z ochotników nie było wprawdzie zbyt karne, ale walczyło z niemal szaleńczą odwagą i brawurą. Powołano Polski Komitet Narodowy po kierunkiem Tadeusza Cieńskiego, a komendantem polskich oddziałów we Lwowie mianowano kpt. Czesława Mączyńskiego.
Polacy zdobywali broń i stopniowo rozszerzali zajmowany teren, z czasem opanowując ważne gmachy i obiekty, m.in. 2 listopada zdobyli strategiczny Dworzec Główny i położony w pobliżu magazyn broni. Odparto dwa silne natarcia ukraińskie poprowadzone na Dom Techników i szkołę Sienkiewicza. Oddziały polskie nabrały pewności i zachęcone powodzeniem przeszły do kontrnatarcia, zajmując kolejne pozycje ukraińskie. Nieoczekiwanie, w momencie kryzysu sił ukraińskich (podczas „dzikiej” demobilizacji żołnierzy) zawarto zawieszenie broni wymuszone na kpt. Mączyńskim przez członków Polskiego Komitetu Narodowego. W następstwie błędu strony polskiej do miasta zaczęły napływać transporty dobrze wyszkolonych i uzbrojonych oddziałów ukraińskich Strzelców Siczowych, które wkrótce weszły do walki. Wieczorem 3 listopada ukraińskie oddziały podjęły akcję bojową i zajęły po walce część obiektów Dworca Głównego.
Zajęcie Lwowa przez Ukraińców zaskoczyło radę miejską złożoną z Polaków oraz polskie organizacje wojskowe, dlatego pierwsze walki w mieście rozpoczęły się całkowicie spontanicznie. Pierwszym ośrodkiem polskiego oporu stała się szkoła im. Henryka Sienkiewicza na zachodnim skraju miasta.
Przez cały kolejny dzień trwały zażarte potyczki niemal na całym froncie walk o Lwów. Ostatecznie wieczorem 4 listopada natarcie Ukraińców zostało złamane i sytuacja została opanowana. Położenie oddziałów polskich było tak dobre, że następnego dnia podjęta została nieskuteczna akcja zdobycia lwowskiej cytadeli. Rozpoczęła się stabilizacja frontu miejskiego i zażarte walki pozycyjne. Okres ten wykorzystano do uporządkowania oddziałów, werbunku ochotników i poboru zdolnych do noszenia broni. Utworzono Naczelną Komendę Wojska Polskiego (nazywaną także Komendą Obrony Lwowa) pod dowództwem mjr. Mączyńskiego. W polskich szeregach znalazło się 6022 żołnierzy, w tym 1421 „orląt lwowskich”.
Tymczasem, pomimo lwowskich niepowodzeń, władze ukraińskie w Małopolsce Wschodniej zaczynały się stabilizować, a dzięki aktywności ludności ukraińskiej powstawały struktury władz miejskich, powiatowych i gminnych, tworzono także lokalne oddziały sił bezpieczeństwa. 9 listopada Ukraińska Rada Ludowa powołała koalicyjny rząd pod kierunkiem Kosta Łewyćkiego, a 13 listopada ukazała się tymczasowa konstytucja Zachodnioukraińskiej Republiki Ludowej, która rościła sobie prawa do terytorium obejmującego Małopolskę Wschodnią, północną Bukowinę, Ruś Zakarpacką i Łemkowszczyznę aż po Nowy Sącz.
W tym czasie polskie działania nabierały rozmachu. Atakowano m.in. pozycje ukraińskie w centrum, pod cytadelą oraz między Politechniką a Górą Straceń, wykorzystując samochód pancerny („Tank Piłsudskiego”), ale natarcia zostały zatrzymane przez ukraińską broń maszynową. 13 listopada po zażartej walce powstrzymano ukraińskie natarcie na polach Kulparkowa, a decydujące było użycie szwadronu kawalerii („Wilki”) i oddziału por. Ludwika Brzozowskiego. W nocy w wyniku kontrataku odzyskano Zamarstynów, a kolejnego dnia w trudnym położeniu znaleźli się obrońcy pozycji w pobliżu Góry Straceń. Trwały walki w rejonie Szkoły Kadeckiej i koszar wuleckich, a polskie oddziały wyszły na przedpole Lwowa w rejonie Persenkówki. Dotychczasowe walki w mieście nie przyniosły militarnego rozstrzygnięcia, a o dalszych losach miasta miała zadecydować odsiecz oddziałów polskich.
9 listopada 1918 r. z Krakowa wyruszyła w kierunku Galicji Wschodniej grupa operacyjna „San” mjr. Juliana Stachiewicza w sile 600–700 żołnierzy, która dwa dni później, po walce z Ukraińcami, zajęła Przemyśl, otwierając tym samym drogę kolejnym oddziałom „odsieczy Lwowa”. W zajętym Przemyślu doszło do połączenia z drugim oddziałem taktycznym dowodzonym przez ppłk. Michała Karaszewicza-Tokarzewskiego, który przejął dowodzenie grupą uderzeniową (140 oficerów i 1228 szeregowych).
Wojsko złożone z ochotników nie było wprawdzie zbyt karne, ale walczyło z niemal szaleńczą odwagą i brawurą.
20 listopada około 14.00 oddziały odsieczy bez większych trudności (krótkie starcie pod Sądową Wisznią) dotarły koleją na Dworzec Główny we Lwowie. Rankiem następnego dnia nastąpiło polskie uderzenie. Doszło do ciężkich walk o Zamarstynów, Górę św. Jacka, cmentarz Łyczakowski, dworce Łyczaków i Podzamcze oraz o cytadelę. Wojska ukraińskie, mimo wzmocnienia przez kolejne oddziały, źle dowodzone i zmęczone długotrwałą wojną, w nocy z 21 na 22 listopada wycofały się ze Lwowa i przeszły do jego oblężenia. W godzinach porannych 22 listopada cały Lwów znalazł się w polskich rękach.
Centralne organy władz ukraińskich przeniosły się początkowo do Tarnopola, następnie do Stanisławowa, a komenda wojsk ukraińskich rozlokowała się w Chodorowie. Ukraińcy ogłosili powszechną mobilizację, szybko zwiększając liczebność swoich oddziałów oraz napór na polskie pozycje. W tym samym okresie polskie oddziały zajęły Ustrzyki, Chyrów, Bełżec, tym samym angażując oddziały ukraińskie przygotowujące się do ataku na Lwów. Rawa Ruska została zdobyta przez grupę lubelską dowodzoną przez mjr. Wacława Scaewolę-Wieczorkiewicza. Przybyła tam także zorganizowana w Warszawie grupa płk. Stanisława Skrzyńskiego.
Przez cały grudzień i styczeń 1919 r. trwały zacięte walki polsko-ukraińskie pod Lwowem, Rawą Ruską i Chyrowem, gdzie oddziały ukraińskie zdołały pokonać grupę sanocką ppłk. Bieleckiego. Ponadto inny oddział polski został rozbity w zasadzce pod Jaworowem. W konsekwencji tych porażek powstało zagrożenie dla korytarza łączącego Lwów z Przemyślem i resztą kraju. W połowie grudnia 1918 r. dowództwo nad oddziałami w rejonie Przemyśla powierzono gen. Zygmuntowi Zielińskiemu, który rozpoczął działania zaczepne na odcinku Chyrów–Sambor. Wykorzystując położenie oddziałów ukraińskich, zdołał on pokonać silniejszego liczebnie przeciwnika. W tym czasie do zgrupowania gen. Zielińskiego dołączyła grupa płk. Henryka Minkiewicza oraz oddział mjr. Izydora Modelskiego.
Dalsze działania miały zostać skierowane na Sambor, ale konieczne stało się skierowanie części sił w rejon zagrożonego Lwowa. 24 grudnia na południe od Gródka Jagiellońskiego rozpoczęła się akcja grupy mjr. Józefa Sopotnickiego. W bojach koło Kiernicy, Artyszowa i Czerlan (24 grudnia), o Lubień Wielki (25 grudnia) oraz Stawczany i Obroszyn (26–27 grudnia) rozbito oddziały ukraińskie, w tym brygadę wojsk Ukraińskiej Republiki Ludowej (Ukrainy Naddnieprzańskiej), wydzieloną przez atamana Symona Petlurę jako wsparcie dla wojsk zachodnioukraińskich. Grupa mjr. Sopotnickiego nie miała jednak wystarczających sił na opanowanie zdobytego terenu, dlatego skierowała się w stronę Lwowa. Sytuację skomplikowało pojawienie się w teatrze działań wojennych nowego przeciwnika – wojsk Ukrainy Naddnieprzańskiej, które dążyły do zajęcia Polesia, Wołynia i Chełmszczyzny.
Atakowano m.in. pozycje ukraińskie w centrum, pod cytadelą oraz między Politechniką a Górą Straceń, wykorzystując samochód pancerny („Tank Piłsudskiego”), ale natarcia zostały zatrzymane przez ukraińską broń maszynową.
Tymczasem we Lwowie w okresie świąt Bożego Narodzenia Ukraińcy kilkakrotnie szturmowali polskie pozycje w rejonie Zboisk i Brzuchowic, które przechodziły z rąk do rąk. Bohatersko broniła się Persenkówka, gdzie doszło do wyłomu w polskiej obronie, ale nie został on wykorzystany przez nieprzyjaciela. Po zajęciu przez Ukraińców wodociągów miejskich we Lwowie brakowało wody, nie było także światła po uszkodzeniu w wyniku ostrzału miejskiej elektrowni. Na szczęście dla obrońców, 8 stycznia 1919 r. z Rawy Ruskiej wyruszyła silna grupa „Bug” pod dowództwem gen. Jana Romera, która po dwóch dniach ciężkich walk dotarła do oblężonego Lwowa, bronionego ostatkiem sił przez żołnierzy i cywilów. Nowe oddziały natychmiast wzmocniły obronę miasta. Zgrupowanie gen. Romera nie było jednak w stanie opanować terenu na północ od linii kolejowej Przemyśl–Lwów.
11 stycznia rozpoczęła się kolejna operacja mająca na celu rozbicie wojsk ukraińskich pod Lwowem, tym razem z udziałem trzech grup taktycznych: płk. Władysława Sikorskiego, płk. Kulińskiego i gen. Zielińskiego. Po dwóch dniach walk natarcie jednak utknęło, a teren działań podzielił się na kilka obszarów, przy czym głównym obiektem polskiej obrony oprócz Lwowa stały się tereny położone wzdłuż linii kolejowej Lwów–Przemyśl oraz linia kolejowa Przemyśl–Jarosław–Rawa Ruska. W bezpośrednich walkach brało udział około 20 tys. polskich żołnierzy przeciwko 70 tys. wojsk ukraińskich (w tym 35 tys. w linii). Tymczasem na Wołyniu działała grupa taktyczna gen. Edwarda Rydza-Śmigłego, która toczyła walki z wojskami wschodnioukraińskimi atamana Petlury. 24 stycznia oddziały polskie zdobyły Włodzimierz Wołyński, a dwa dni później opanowały Kowel. Oba miasta stały się ważnymi punktami oparcia w dalszych działaniach.
Po chwilowej przerwie, 17 lutego rozpoczęła się od dawna przygotowywana ofensywa oddziałów ukraińskich, której celem było odcięcie Lwowa od Przemyśla i przerwanie linii kolejowej. Doszło do zaciętych walk na długim froncie od Medyki aż po Lwów. Mimo polskiego oporu w kilku miejscach siły ukraińskie zdołały przerwać front i zająć miejscowości położone wzdłuż torów kolejowych, prowadząc ostrzał pociągów. Oddziałom broniącym Lwowa zaczynało brakować amunicji i żywności. 28 lutego doszło do kilkudniowego rozejmu zaproponowanego przez misję przedstawicieli państw Ententy.
Wojska ukraińskie, mimo wzmocnienia przez kolejne oddziały, źle dowodzone i zmęczone długotrwałą wojną, w nocy z 21 na 22 listopada wycofały się ze Lwowa i przeszły do jego oblężenia. W godzinach porannych 22 listopada cały Lwów znalazł się w polskich rękach.
Na początku marca rozpoczęła się kolejna, silna ofensywa oddziałów Zachodnioukraińskiej Republiki Ludowej, która doprowadziła do chwilowego okrążenia polskich oddziałów. 7 marca Ukraińcy zdołali zająć tory kolejowe na odcinku Bratkowice–Rodatycze, definitywnie przerywając połączenie kolejowe z Przemyślem. Trwał ostrzał artyleryjski Lwowa i napór wojsk ukaińskich. Sytuacja oddziałów polskich została uratowana dzięki posiłkom (dziesięć batalionów i baterie artylerii) dowodzonym przez gen. Wacława Iwaszkiewicza. Wchodzące w skład grupy oddziały gen. Franciszka Aleksandrowicza, 11 marca atakując wzdłuż torów (po ich stronie północnej), dotarły do Sądowej Wiszni, bronionej resztkami sił przez Polaków. W kolejnych dniach trwały zażarte walki w Gródku Jagiellońskim i o zachodnie przedmieścia Lwowa.
16 marca do Przemyśla dotarła z odsieczą grupa wojsk wielkopolskich płk. Daniela Konarzewskiego. Grupa manewrowała po południowej stronie linii kolejowej, po drodze tocząc boje pod Barem i Miliatynem. 20 marca obie grupy dotarły do Gródka Jagiellońskiego i odzyskano kontrolę nad linią kolejową Przemyśl–Lwów. Jednak ze względu na zniszczenia torowiska zaopatrzenie do Lwowa przejął transport samochodowy. Sytuacja na froncie polsko-ukraińskim powoli się stabilizowała, jedynie w połowie kwietnia oddziały polskie odrzuciły Ukraińców z podlwowskich przedmieść i wiosek, z których prowadzony był ostrzał miasta. Oddziały polskie zdołały opanować obszar między liniami kolejowymi Przemyśl–Lwów, Przemyśl–Jarosław–Rawa Ruska i przeszli do obrony własnych pozycji w oczekiwaniu na obiecane wzmocnienie.
Tymczasem na Wołyniu oddziały polskie prowadziły dalsze walki z siłami Ukraińskiej Republiki Ludowej. Wojska polskie w oparciu o Kowel i Włodzimierz Wołyński, skutecznie posuwały się na wschód, dochodząc do rzeki Stochód. Za rzeką działały siły zbrojne wschodnioukraińskie atamana Petlury, z głównym zgrupowaniem wzdłuż linii kolejowej Równe–Rożyszcze. W rejonie Porycka nocą z 1 na 2 marca 1919 r. grupa mjr. Leopolda Lisa-Kuli brawurowym atakiem zdołała rozbić silniejsze zgrupowanie ukraińskie atamana Porochowskiego. Następnie nocą z 5 na 6 marca oddziały polskie w rejonie Twerdynia i Oździutyczy zdołały zniszczyć znaczne siły ukraińskie, a 7 marca w Torczynie pokonać silne zgrupowanie wojsk nieprzyjaciela. Niestety w ataku tym poległ dowódca grupy, mjr Lis-Kula (pośmiertnie awansowany na podpułkownika). Po tych bojach wydarzenia na froncie wołyńskim straciły rozmach, gdyż siły wschodnioukraińskie topniały pod naporem Armii Czerwonej nacierającej od wschodu i północy. Wzrastała natomiast liczebność grupy wołyńskiej gen. Rydza-Śmigłego i tworzącego się frontu wołyńskiego.
W połowie maja 1919 r. wojska polskie na terenie Małopolski Wschodniej, wzmocnione przybyłymi z Francji oddziałami armii gen. Józefa Hallera, podjęły akcję zaczepną na froncie galicyjskim, tj. na szerokim odcinku od Prypeci na Wołyniu po Karpaty. W wyniku natarcia oddziały dowodzone przez gen. Iwaszkiewicza zajęły obszar zagłębia naftowego w rejonie Borysławia i Drohobycza. 27 maja zajęto Halicz i Stanisławów, co umożliwiło nawiązanie kontaktów z zaprzyjaźnioną Rumunią, która przeznaczyła do działań przeciwko Ukraińcom dwie dywizje (piechoty i kawalerii). Oddziały rumuńskie zajęły Kołomyję i wypierając oddziały ukraińskie, ruszyły w kierunku Dniestru.
W tym samym czasie obszar zajmowany przez armię wschodnioukraińską atakowany był także od wschodu przez Armię Czerwoną, co zmuszało Ukraińców do walki na dwa fronty. W ciągu dwóch kolejnych miesięcy oddziały polskie zdołały zająć tereny po rzekę Zbrucz (za którą stali już bolszewicy) i linię Brody–Jeziorna–Złota Lipa w Galicji. 2 czerwca oddziały polskie z rozpędu zajęły Tarnopol. Obszar zajmowany przez armię ukraińską 7 czerwca zmniejszył się do około 35 km kw., a regularne oddziały stopniały do 25 tys. żołnierzy. Pomimo rozpaczliwej sytuacji Ukraińcy nie rezygnowali z dalszej walki i oporu. Niedługo oddziały polskie walczące w Galicji oraz na Wołyniu (w rejonie Dubna, Równego i Krzemieńca) weszły w styczność z nadciągającą od wschodu Armią Czerwoną. Częściowo rozbite i osłabione masowymi dezercjami oddziały zachodnioukraińskie zbierały się w rejonie Czortkowa. Z kolei wojska wschodnioukraińskie atamana Petlury na początku czerwca zostały otoczone przez Rosjan na północ od Tarnopola. Po przełamaniu pierścienia Rosjan zdołały jednak przeprawić się na wschodni brzeg Zbrucza, gdzie skoncentrowały się w rejonie Kamieńca Podolskiego. 27 maja wojska polskie zdobyły Brody i Radziwiłłów, 28 maja Złoczów, a 30 maja Brzeżany. 2 czerwca opanowały Tarnopol i przejęły znaczne zapasy ukraińskiego materiału wojennego.
Podczas walk o Lwów poległo lub zmarło z odniesionych ran 439 żołnierzy i sanitariuszy, w tym 13 kobiet oraz 196 uczniów („orląt lwowskich”) i studentów wyższych uczelni (44 proc. poległych). Ponadto w czasie walk o miasto zginęło 157 osób cywilnych.
Tymczasem 8 czerwca niespodziewanie ruszyła ofensywa zachodnioukraińskiej Armii Halickiej dowodzonej przez gen. Aleksandra Grekowa, której celem było zdobycie Czortkowa. Ofensywa była dużym zaskoczeniem dla zgromadzonych w mieście oddziałów mjr. Józefa Jaklicza, które poniosły znaczne straty i zaczęły ogólny odwrót. Polacy zostali wyparci z Czortkowa, Buczacza, Trembowli, Tarnopola i po ciężkich walkach z Brzeżan – ważnego węzła drogowego i kolejowego, a zarazem bazy zaopatrzeniowej wojsk polskich. Polacy ewakuowali się także ze Stanisławowa, zostali wyparci ze Złoczowa. Oddziały polskie wycofały się na linię Gniłej Lipy i górnego Styru. Z każdym dniem wzrastała liczebność wojsk ukraińskich aż do około 60 tys. żołnierzy. Byli oni jednak słabo uzbrojeni i niemal zupełnie bez amunicji.
W tej pogarszającej się sytuacji konieczne było wzmocnienie polskich oddziałów na froncie galicyjsko-wołyńskim, co stało się możliwe za zgodą Rady Najwyższej państwa Ententy. 28 czerwca o godz. 4.00 rozpoczął się polski atak na rozciągającym się na 160 km froncie. Ukraińcy nie byli już w stanie stawiać skutecznego oporu, dlatego podjęli decyzję o wycofaniu się na całej linii. 5 lipca wojska polskie doszły do linii rzeki Strypy i ponownie zajęły Tarnopol, gdzie zatrzymały się w celu uzupełnienia amunicji. 14 lipca natarcie zostało wznowione, a następnego dnia władze zachodnioukraińskie i żołnierze Armii Halickiej ostatecznie wycofali się za Zbrucz, gdzie zasilili wojska atamana Petlury. 17 lipca wojska polskie doszły do Zbrucza, tj. do dawnej wschodniej granicy Galicji.
Walki polsko-ukraińskie o Lwów i Galicję Wschodnią trwały ponad osiem miesięcy i kosztowały życie około 10 tys. Polaków i 15 tys. Ukraińców walczących z bronią w ręku oraz setek ofiar cywilnych. Podczas walk o Lwów poległo lub zmarło z odniesionych ran 439 żołnierzy i sanitariuszy, w tym 13 kobiet oraz 196 uczniów („orląt lwowskich”) i studentów wyższych uczelni (44 proc. poległych). Ponadto w czasie walk o miasto zginęło 157 osób cywilnych. 25 czerwca 1919 r. Rada Najwyższa państw Ententy tymczasowo upoważniła Polskę do zajęcia terenów wschodniomałopolskich po Zbrucz i ich wojskową okupację. 21 listopada 1919 r. Rada Najwyższa przyznała Polsce mandat zarządu obszaru Galicji Wschodniej (na wschód od Sanu) na okres 25 lat.
Fragment książki Artura Ochała, Tarcza II Rzeczypospolitej. Korpus Ochrony Pogranicza 1924–1939, Warszawa 2018