Na mistrzostwach świata w Montrealu w 2005 zdobył złoty medal po uzyskaniu wyniku 1:55,02, będący zarazem nowym rekordem Polski.

Cztery lata później, podczas mistrzostw świata w Rzymie zdobył w wyścigu na 200 m stylem motylkowym srebrny medal z czasem nowego rekordu Polski 1:53,23, przegrywając jednak z Michaelem Phelpsem. Złoty medal zdobył również na Letniej Uniwersjadzie w Izmirze. Kolejne starty zakończyły się również zdobyciem tytułów mistrzowskich: w Trieście, ME na basenie 25-metrowym, w Budapeszcie, ME na basenie 50-metrowym, Helsinki, ME na basenie 25-metrowym (2005, 2006, 2007).

Osiągnięcia Igrzyska olimpijskie Ateny 2004 4. miejsce (200 m stylem motylkowym) 9. miejsce (1500 m stylem dowolnym)

Pekin 2008 6. miejsce (200 m stylem motylkowym)

Londyn 2012 7. miejsce (200 m stylem motylkowym)

Mistrzostwa świata Barcelona 2003 8.