Jako mieszkaniec Słup w 1997 kandydował do Sejmu z listy Unii Wolności, a w 1998 uzyskał mandat radnego miasta i gminy Szubin. W 2002 z ramienia Bezpartyjnego Bloku Wyborczego uzyskał reelekcję, a także ubiegał się o urząd jej burmistrza, zajmując 3. miejsce spośród 5 kandydatów. Po przenosinach na Żuławy Wiślane, w 2006 z ramienia Porozumienia Samorządowego 2006 uzyskał mandat radnego powiatu nowodworskiego. W 2010 z listy Samorządowego Forum Wyborczego „Razem Lepiej” uzyskał reelekcję. Po tym, jak przeniósł się do Czernina na Powiślu, w 2014 z listy Polskiego Stronnictwa Ludowego zdobył mandat radnego sejmiku pomorskiego, zostając jego wiceprzewodniczącym. W 2015 otwierał gdańską listę PSL do Sejmu, nie uzyskując mandatu. W 2018 ponownie zasiadł w sejmiku województwa, utrzymując funkcję wiceprzewodniczącego, z której jednak po tygodniu zrezygnował, zasiadając w zarządzie województwa. W 2019 jako kandydat Platformy Obywatelskiej bezskutecznie ubiegał się o mandat poselski z listy Koalicji Obywatelskiej. Z powodu startu z konkurencyjnej listy został w styczniu 2020 wykluczony z PSL. W marcu 2023 przystąpił do klubu KO w sejmiku. W tym samym roku ponownie kandydował bez powodzenia z jej listy do Sejmu. W 2024 utrzymał mandat radnego sejmiku na kolejną kadencję.