W latach 90. zaangażował się w działalność samorządu terytorialnego. Zasiadał w radzie gminy Warszawa-Centrum, gdzie pełnił funkcję wiceprzewodniczącego. Działał w organach samorządu gospodarczego, m.in. w Izbie Przemysłowo-Handlowej Polska-RPA i Polskim Stowarzyszeniu Małych i Średnich Przedsiębiorstw. W latach 1997–2001 był wiceprezydentem Polskiej Izby Handlu, Usług i Producentów Rynkowych.
W 1990 działał w Ruchu Obywatelskim Akcji Demokratycznej, a następnie w Unii Demokratycznej i Unii Wolności. W wyborach parlamentarnych w 1991 bez powodzenia ubiegał się o mandat poselski z listy UD. W 2001 dołączył do Platformy Obywatelskiej.
Z ramienia Platformy Obywatelskiej sprawował mandat posła na Sejm IV i V kadencji wybieranego w okręgu płockim. Został członkiem rady krajowej PO. Wybrany na przewodniczącego regionu mazowieckiego partii na zjeździe w maju 2006, zrezygnował z pełnienia tej funkcji po kilku dniac.
W wyborach parlamentarnych w 2007 został wybrany do Senatu w okręgu podwarszawskim z wynikiem 223 704 głosów. W 2011 z powodzeniem ubiegał się o reelekcję, w nowym okręgu jednomandatowym dostał 105 825 głosów. W wyborach w 2015 bez powodzenia ubiegał się o mandat poselski. W 2016 został rzecznikiem dyscypliny partyjnej Platformy Obywatelskiej.