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.