Z poparciem 65 993 głosów został wybrany na posła na Sejm VI kadencji, osiągając jednocześnie najwyższy wynik w swoim okręgu, przed Jarosławem Wałęsą i Maciejem Płażyńskim.

16 listopada 2007 został sekretarzem stanu w Kancelarii Premiera i szefem gabinetu politycznego premiera. 7 października 2009 podał się do dymisji. 26 października 2009 jego dymisja została przyjęta. Zasiadał w zarządzie krajowym Platformy Obywatelskiej. 21 października 2009 został wiceprzewodniczącym klubu parlamentarnego tej partii. W 2010 został szefem sztabu wyborczego Bronisława Komorowskiego w wyborach prezydenckich. 22 maja 2010 zastąpił Jana Kozłowskiego na stanowisku przewodniczącego Regionu Pomorskiego PO. 5 sierpnia tego samego roku nie został ponownie wiceprzewodniczącym klubu parlamentarnego PO.

29 września 2010 został powołany na stanowisko sekretarza stanu w Kancelarii Prezydenta ds. kontaktów z rządem i parlamentem, w związku z czym tego samego dnia wygasł jego mandat poselski. W wyborach parlamentarnych w 2011 kandydował ponownie z listy Platformy Obywatelskiej do Sejmu z okręgu gdańskiego, zdobywając mandat poselski wynikiem 65 629 głosów.