Od 1987 do 1990 był wiceministrem edukacji. W 1989 brał udział w obradach podzespołu do spraw nauki, oświaty i postępu technicznego Okrągłego Stołu po stronie rządowej. W latach 1989–2001 sprawował mandat posła X, I, II i III kadencji – początkowo z ramienia ZSL, a następnie z listy PSL.

W 1992 kierował Urzędem Rady Ministrów w czasie pełnienia funkcji premiera przez Waldemara Pawlaka. Od 26 października 1993 do 6 marca 1995 sprawował funkcję wicepremiera oraz ministra edukacji narodowej w jego rządzie. Od 7 marca 1995 do 31 października 1997 był przewodniczącym Komitetu Badań Naukowych w rządach Józefa Oleksego oraz Włodzimierza Cimoszewicza. Do 7 lutego 1996 w pierwszym z nich pełnił jednocześnie nadal funkcję wicepremiera. Od listopada 2001 do grudnia 2005 zasiadał w Krajowej Radzie Radiofonii i Telewizji, od czerwca 2003 do grudnia 2005 pełniąc funkcję jej wiceprzewodniczącego. W 2010 bez powodzenia kandydował z listy PSL do Sejmiku Województwa Mazowieckiego.

W latach 1997–2000 był prezydentem Światowej Skautowej Unii Parlamentarnej. W 2012 otrzymał tytuł naukowy profesora nauk humanistycznych.