Arqueólogos demonstraram que a área de Lviv foi colonizada por volta do século V. A cidade foi fundada pelo Rei Daniel da Galícia no principado ruteno de Halych-Volhynia e recebeu o nome de seu filho Lev. Em 1261, a cidade foi invadida pelos tártaros, sob as ordens do general mongol Burundai. Após a morte de Daniel, o Rei Lev reconstruiu a cidade por volta de 1270 em sua localização atual. A cidade cresceu rapidamente devido ao influxo de poloneses de Cracóvia. A cidade foi herdada pelo Grão-Ducado da Lituânia em 1340 e foi governada pelo voivoda Dmitri Detko até 1349. Durante as guerras pela sucessão do Principado da Galícia-Volhynia, o Rei Casimiro III da Polônia liderou uma expedição e conquistou Lviv em 1340. A Polônia finalmente obteve o controle da cidade e da região adjacente em 1349.
Em 1444, Lviv recebeu o direito de propriedade, resultando na crescente prosperidade e riqueza da cidade. O século XVII trouxe exércitos invasores de suecos, húngaros, turcos, russos e cossacos aos seus portões e, em 1672, foi cercada pelos otomanos, que, no entanto, não conseguiram conquistá-la. Lviv foi capturada pela primeira vez por um exército estrangeiro em 1704 por tropas suecas lideradas pelo Rei Carlos XII.
Em 1772, após a Primeira Partição da Polônia, a região foi anexada pela Áustria. Após o chamado Ausgleich de fevereiro de 1867, o Império Austríaco foi reformado em uma Áustria-Hungria dualista, e um processo lento, porém constante, de liberalização do domínio austríaco na Galícia teve início. A partir de 1873, a Galícia tornou-se de fato uma província autônoma da Áustria-Hungria, com o polonês e o ucraniano como línguas oficiais. A germanização foi então interrompida e a censura também foi suspensa.
A cidade começou a crescer rapidamente e eventualmente se tornou a quarta maior da Áustria-Hungria. No estágio inicial da Primeira Guerra Mundial, foi capturada pelo exército russo em setembro de 1914, mas então retomada pela Áustria-Hungria em junho seguinte. Após a assinatura do Pacto Molotov-Ribbentrop, a Alemanha invadiu a Polônia em 1 de setembro de 1939 e em 14 de setembro Lviv foi completamente cercada por tropas alemãs. Os soviéticos então invadiram a Polônia em 17 de setembro e a cidade se tornou a capital do recém-formado Oblast de Lviv. A Alemanha via a Galícia (anteriormente austríaca) como já arianizada e civilizada, e os galegos ucranianos escaparam de toda a extensão dos atos alemães. Em 1945, um acordo de fronteira cedeu formalmente a parte oriental da Polônia antes da guerra para a União Soviética concordando com a fronteira polaco-soviética traçada conforme a chamada "Linha Curzon", e em fevereiro de 1946, Lviv tornou-se parte da União Soviética. A população, majoritariamente ucraniana nessa época, foi submetida à sovietização forçada e a imigração da Rússia foi bastante incentivada. Apesar disso, a cidade permaneceu um importante centro de movimentos dissidentes na Ucrânia e desempenhou um papel fundamental na independência do país em 1991.