Jego pierwszym większym sukcesem było wicemistrzostwo Polski w wyścigu szosowym ze startu wspólnego (2006). W tym samym roku startował w Wyścigu Pokoju, ale go nie ukończył. W 2007 sięgnął w tej konkurencji po mistrzostwo Polski. Jego pierwszym zwycięstwem w peletonie zawodowym na arenie międzynarodowej była wygrana etapu w Wyścigu dookoła Asturii (6 maja 2008). W 2010 zwyciężył w Memoriale Romana Ręgorowicza i generalnej klasyfikacji rozgrywanego w Korei Tour de Seoul. W najbardziej udanym sezonie 2011 wygrał mistrzostwa Polski zarówno w wyścigu ze startu wspólnego, jak i jeździe indywidualnej na czas. Zwyciężył także w Małopolskim Wyścigu Górskim. W 2012 startował w Giro d'Italia, ale go nie ukończył, w Tour de Pologne zwyciężył w klasyfikacji górskiej, natomiast w Vuelta Espana zajął 13. miejsce – wówczas najlepsze w historii startów Polaków w tej imprezie (w 2006 14. był Sylwester Szmyd).
W 2008 uczestniczył w Igrzyskach Olimpijskich w Pekinie, zajmując w wyścigu ze startu wspólnego 84. miejsce. Trzykrotnie startował też w wyścigu ze startu wspólnego na mistrzostwach świata, zajmując 123. (2006) i 33. pozycję (2007), a wyścigu w 2012 nie ukończył. Na mistrzostwach świata w 2012 zajął 12.