Był współzałożycielem Porozumienia Centrum, z którego odszedł po uzyskaniu mandatu poselskiego w 1991 z listy „Solidarności”. Od 1998 należał do Ruchu Społecznego AWS, w którym pełnił m.in. funkcję przewodniczącego mazowieckiego Zarządu Wojewódzkiego. Od 2002 należał do Platformy Obywatelskiej. W latach 1998–2002 był radnym sejmiku mazowieckiego I kadencji (pełnił funkcję przewodniczącego klubów radnych Akcji Wyborczej Solidarność i następnie Prawicy).
Sprawował mandat posła na Sejm I kadencji (z ramienia „Solidarności”), III kadencji (z ramienia AWS) i V kadencji (z ramienia PO). W wyborach parlamentarnych w 2007 z listy Platformy Obywatelskiej po raz czwarty wszedł do Sejmu (VI kadencji), uzyskując 10 546 głosów w okręgu podwarszawskim. W wyborach w 2011 bezskutecznie ubiegał się o mandat poselski na kolejną kadencję (otrzymał 7043 głosy). 5 czerwca 2014 objął mandat posła VII kadencji w miejsce wybranego do Parlamentu Europejskiego Dariusza Rosatiego. Trzy tygodnie później wystąpił z PO po celowej absencji podczas głosowania nad wotum zaufania dla rządu Donalda Tuska. Złożył także rezygnację z członkostwa w klubie parlamentarnym, która nie została przyjęta, jednak poseł został kilka dni później z niego wykluczony.