Od 1989 do 2001 sprawował mandat posła na Sejm X, I, II i III kadencji z ramienia Komitetu Obywatelskiego „Solidarność” (w 1990 wstąpił do Ruchu Obywatelskiego Akcja Demokratyczna), Unii Demokratycznej, a następnie Unii Wolności. Pełnił funkcje wiceprzewodniczącego Komisji Obrony Narodowej, członka Komisji Spraw Zagranicznych, delegacji polskiego parlamentu do Zgromadzenia Północnoatlantyckiego Unii Zachodnioeuropejskiej, a także do Zgromadzenia Parlamentarnego Rady Europy. W 2001 nie został ponownie wybrany do Sejmu, UW nie przekroczyła progu wyborczego.

W 1994 został prezesem Stowarzyszenia Euro-Atlantyckiego. W 2004 z listy UW został wybrany na posła do Parlamentu Europejskiego VI kadencji w okręgu małopolsko-świętokrzyskim liczbą 50 155 głosów (6,37%).

Od 20 lipca 2004 do 16 stycznia 2007 zajmował stanowisko wiceprzewodniczącego Parlamentu Europejskiego z ramienia Porozumienia Liberałów i Demokratów na rzecz Europy. Objął następnie funkcję wiceprzewodniczącego Komisji Spraw Zagranicznych, był także członkiem Podkomisji Bezpieczeństwa i Obrony oraz Delegacji Białoruskiej PE. W 2009 bez powodzenia ubiegał się o reelekcję z listy komitetu Porozumienie dla Przyszłości – CentroLewica (jako kandydat Partii Demokratycznej – demokraci.pl).