Los arqueólogos han demostrado que la zona de Lviv ya estaba habitada en el siglo V. La ciudad fue fundada por el rey Daniel de Galicia en el principado ruteno de Halych-Volhynia y recibió el nombre de su hijo Lev. En 1261, la ciudad fue invadida por los tártaros, por orden del general mongol Burundai. Después de la muerte de Daniel, el rey Lev reconstruyó la ciudad alrededor de 1270 en su ubicación actual. La ciudad creció rápidamente debido a la afluencia de polacos de Cracovia. La ciudad fue heredada por el Gran Ducado de Lituania en 1340 y estuvo gobernada por el voivoda Dmitri Detko hasta 1349. Durante las guerras por la sucesión del Principado de Galicia-Volinia, el rey Casimiro III de Polonia encabezó una expedición y conquistó Lviv en 1340. Polonia finalmente obtuvo el control de la ciudad y la región adyacente en 1349.
En 1444, a Lviv se le concedió el derecho básico, lo que resultó en una creciente prosperidad y riqueza de la ciudad. El siglo XVII trajo a sus puertas ejércitos invasores de suecos, húngaros, turcos, rusos y cosacos, y en 1672 fue rodeada por los otomanos, quienes, sin embargo, no lograron conquistarla. Lviv fue capturada por primera vez por un ejército extranjero en 1704 por tropas suecas dirigidas por el rey Carlos XII.
En 1772, tras la Primera Partición de Polonia, la región fue anexada por Austria. Después del llamado Ausgleich de febrero de 1867, el Imperio austríaco se transformó en un Austria-Hungría dualista y había comenzado un proceso lento pero constante de liberalización del dominio austríaco en Galicia. Desde 1873, Galicia fue de facto una provincia autónoma de Austria-Hungría con el polaco y el ucraniano como lenguas oficiales. Luego se detuvo la germanización y también se levantó la censura.
La ciudad comenzó a crecer rápidamente y finalmente se convirtió en la cuarta más grande de Austria-Hungría. En la primera etapa de la Primera Guerra Mundial, fue capturada por el ejército ruso en septiembre de 1914, pero luego retomada por Austria-Hungría en junio siguiente. Tras la firma del Pacto Molotov-Ribbentrop, Alemania invadió Polonia el 1 de septiembre de 1939 y el 14 de septiembre Lviv estaba completamente rodeada por tropas alemanas. Luego, los soviéticos invadieron Polonia el 17 de septiembre y la ciudad se convirtió en la capital del recién formado Óblast de Lviv. Alemania consideraba a Galicia (antes austriaca) como ya arianizada y civilizada, y los gallegos ucranianos escaparon al alcance total de las acciones alemanas. En 1945, un acuerdo fronterizo cedió formalmente la parte oriental de Polonia antes de la guerra a la Unión Soviética, aceptando la frontera polaco-soviética trazada según la llamada "Línea Curzon", y en febrero de 1946, Lviv pasó a formar parte de la Unión Soviética. La población, en su mayoría ucraniana en esta etapa, fue sometida a una sovietización forzada y se fomentó enormemente la inmigración desde Rusia. A pesar de esto, la ciudad siguió siendo un importante centro del movimiento disidente en Ucrania y jugó un papel fundamental en la obtención de la independencia de Ucrania en 1991.