Po studiach ukończonych w 1988 r. trafił jako nauczyciel historii do V LO w Gdańsku. Rok później został też nauczycielem akademickim na macierzystej uczelni; specjalizował się w historii nowożytnej XVI-XVIII wieku. Prowadził też zajęcia z historii sztuki.
Działalność opozycyjną podjął jeszcze w czasie studiów, wiążąc się w 1983 r. z prawicowym Ruchem Młodej Polski. Brał udział w strajkach: studenckim w maju 1988 r. i robotniczym w Stoczni Gdańskiej w sierpniu 1988 r. Współorganizował katolicki Związek Akademicki "Verbum" i został jego pierwszym prezesem. Od jesieni 1988 r. pracował w kierownictwie Katolickiego Nurtu Stowarzyszeń Akademickich (KNSA) i z jego ramienia uczestniczył w obradach okrągłego stołu. Od 1989 r. pracował w Komisji Krajowej "Solidarności". Należał do partii politycznych: Zjednoczenia Chrześcijańsko-Narodowego (1990-91), Koalicji Republikańskiej i Partii Konserwatywnej (1991-93).
Dziennikarstwem zajął w 1990. W latach 1990-91 byłem szefem działu politycznego i akademickiego wychodzącego w Gdańsku katolickiego tygodnika "Młoda Polska", którego redaktorem naczelnym był wówczas Wiesław Walendziak. Swoich sił próbował też w telewizji, przygotowując w lipcu i sierpniu 1991 r. programy dla polskojęzycznej telewizji w Wilnie. Potem trafił do "Panoramy" OTV Gdańsk, a następnie "Wiadomości" TVP, by dojść do funkcji szefa gdańskiej "Panoramy". W 1993 r. przeniósł się do TV Polsat, w której tworzył, a następnie kierował zespołem "Informacji" i publicystyki. W 1998 r. został rzecznikiem prasowym rządu Jerzego Buzka. Rok później wszedł w skład Krajowej Rady Radiofonii i Telewizji.
W 2005 roku uzyskał mandat poselski z listy PiS w okręgu gdyńsko-słupskim. W latach 2005-2007 był sekretarzem stanu w Ministerstwie Kultury i Dziedzictwa Narodowego. W wyborach parlamentarnych w 2007 r. po raz drugi został posłem z list PiS.
17 grudnia 2007 roku wystąpił z klubu Prawa i Sprawiedliwości. "PiS przestał być ugrupowaniem jednoczącym polską prawicę, a różnorodność ideowa przestała być tam traktowana jako atut" - uzasadnił. Bezpośrednim powodem jego odejścia było niedopuszczenie do głosu trzech byłych wiceprezesów tej partii, którym władze PiS uniemożliwiły uczestniczenie w powyborczym kongresie PiS-u.