Les archéologues ont montré que la région de Lviv était colonisée au Ve siècle. La ville a été fondée par le roi Daniel de Galice dans la principauté ruthène de Halytch-Volhynie et porte le nom de son fils Lev. En 1261, la ville fut envahie par les Tatars, sur ordre du général mongol Burundai. Après la mort de Daniel, le roi Lev reconstruisit la ville vers 1270 à son emplacement actuel. La ville s'est développée rapidement en raison de l'afflux de Polonais en provenance de Cracovie. La ville a été héritée par le Grand-Duché de Lituanie en 1340 et a été dirigée par le voïvode Dmitri Detko jusqu'en 1349. Pendant les guerres pour la succession de la Principauté de Galice-Volhynie, le roi Casimir III de Pologne a dirigé une expédition et a conquis Lviv en 1340. La Pologne a finalement prit le contrôle de la ville et de la région adjacente en 1349.
En 1444, Lviv obtint le droit de base, ce qui entraîna la prospérité et la richesse croissantes de la ville. Le XVIIe siècle a amené à ses portes des armées d'invasion composées de Suédois, de Hongrois, de Turcs, de Russes et de Cosaques, et en 1672, elle a été encerclée par les Ottomans, qui n'ont cependant pas réussi à la conquérir. Lviv fut capturée pour la première fois par une armée étrangère en 1704 par les troupes suédoises dirigées par le roi Charles XII.
En 1772, suite au premier partage de la Pologne, la région fut annexée par l'Autriche. Après ce qu'on appelle l'Ausgleich de février 1867, l'Empire autrichien fut réformé en une Autriche-Hongrie dualiste et un processus lent mais régulier de libéralisation de la domination autrichienne en Galice avait commencé. À partir de 1873, la Galice était de facto une province autonome de l'Autriche-Hongrie avec le polonais et l'ukrainien comme langues officielles. La germanisation fut alors stoppée et la censure également levée.
La ville a commencé à se développer rapidement et est finalement devenue la 4ème plus grande ville d'Autriche-Hongrie. Au début de la Première Guerre mondiale, elle fut capturée par l'armée russe en septembre 1914, puis reprise par l'Autriche-Hongrie en juin suivant. Suite à la signature du pacte Molotov-Ribbentrop, l'Allemagne envahit la Pologne le 1er septembre 1939 et, le 14 septembre, Lviv fut complètement encerclée par les troupes allemandes. Les Soviétiques envahirent ensuite la Pologne le 17 septembre et la ville devint la capitale de l'oblast de Lviv nouvellement formé. L'Allemagne considérait la Galice (anciennement autrichienne) comme déjà aryanisée et civilisée, et les Galiciens ukrainiens échappaient à toute l'étendue des actes allemands. En 1945, un accord frontalier céda officiellement la partie orientale de la Pologne d'avant-guerre à l'Union soviétique, acceptant la frontière polono-soviétique tracée selon la « ligne Curzon », et en février 1946, Lviv devint une partie de l'Union soviétique. La population, majoritairement ukrainienne à cette époque, fut soumise à une soviétisation forcée et l'immigration en provenance de Russie fut grandement encouragée. Malgré cela, la ville est restée un centre majeur du mouvement dissident en Ukraine et a joué un rôle central dans l’obtention de l’indépendance de l’Ukraine en 1991.