Kilkakrotnie bez powodzenia kandydował w wyborach parlamentarnych: w 1993 do Sejmu z listy UD, w 2005 do Senatu z ramienia PD, w 2007 do Sejmu z listy Lewicy i Demokratów, a w 2011 do Sejmu z ramienia PO.
W 2015 zaangażował się w działalność ugrupowania Nowoczesna, założonego przez Ryszarda Petru, zostając jego liderem w województwie małopolskim, a następnie kandydatem tej partii do Sejmu w wyborach parlamentarnych, uzyskując w wyniku głosowania mandat poselski. W 2016 został wiceprzewodniczącym ugrupowania (pełnił tę funkcję do 2024). W wyborach w 2019 nie uzyskał poselskiej reelekcji. Również w 2023 bez powodzenia kandydował do Sejmu z ramienia Koalicji Obywatelskiej. 26 czerwca 2024 złożył ślubowanie poselskie, obejmując mandat posła X kadencji zwolniony przez wybraną do Parlamentu Europejskiego Jagnę Marczułajtis-WalczakPostanowienie Marszałka Sejmu Rzeczypospolitej Polskiej z dnia 21 czerwca 2024 r. w sprawie obsadzenia wygasłego mandatu w okręgu wyborczym nr 13 z siedzibą Okręgowej Komisji Wyborczej w Krakowie ().. Po rozwiązaniu w 2025 Nowoczesnej przystąpił do partii KO.