Er gewann bei den Olympischen Spielen 2000 die Goldmedaille über 100 m Schmetterling, wofür er auch mit der Svenska-Dagbladet-Goldmedaille geehrt wurde. Bei den Olympischen Spielen 1992 in Barcelona und bei den Spielen 1996 in Atlanta holte er mit der schwedischen 4×200 m Freistilstaffel jeweils die Silbermedaille. Bei den Schwimmweltmeisterschaften 2001 in Fukuoka gewann er überraschend die Goldmedaille über 100 m Schmetterling vor dem Favoriten Ian Crocker. Mit der schwedischen 4×100 m Lagenstaffel gewann er bei den Schwimmeuropameisterschaften 2008 in Eindhoven die Bronzemedaille.