Studia ukończył w 1946. W tym samym roku rozpoczął pracę naukową na Uniwersytecie Wrocławskim (w latach 1954–1955 był prodziekanem, w latach 1964–1965 dziekanem Wydziału Filozoficzno-Historycznego, a w latach 1958–1961 prorektorem), zostając równocześnie członkiem Polskiego Towarzystwa Historycznego. Stopień doktora uzyskał w 1947, stopień profesora nadzwyczajnego w 1958, a profesorem zwyczajnym został w 1970. W latach 1953–1968 był kierownikiem Instytutu Historii PAN w Krakowie, a następnie w latach 1977–1981 kierował Zakładem Historii Śląska PAN.

W 1965 przeniósł się do Krakowa na Uniwersytet Jagielloński, obejmując kierownictwo Katedry Historii Polski XVI–XVIII wieku. Kierował następnie Zakładem Historii Nowożytnej Powszechnej. W latach 1967–1972 był dyrektorem Instytutu Historii UJ. W 1981 został wybrany, w pierwszych od dziesięcioleci demokratycznych wyborach, na rektora UJ. Uniwersytetem jako rektor kierował do 1987. Po wprowadzeniu stanu wojennego udało mu się szybko doprowadzić do uwolnienia internowanych pracowników i studentów UJ (przed końcem 1981). W 1983 wręczył papieżowi Janowi Pawłowi II doktorat honoris causa UJ. W 1984 powołał komisję, która, chociaż pomysł wówczas wydawał się nierealny, rozpoczęła cały proces budowy nowego kampusu UJ (prace kontynuowali później jego następcy: prof. Aleksander Koj, prof.