Lors de ses 1ersJeux olympiques en 2000 à Sydney où il représente la Yougoslavie, Milorad Čavić est éliminé en série de l'épreuve du 100 m dos, en 58 s 25, soit le 42e temps[1] et disqualifié, en série, de celle du 100 m papillon[2].
Lors des Championnats d'Europe en petit bassin de 2003 à Dublin, il est champion d'Europe du 100 m papillon et vice-champion du 50 m nage libre, performances identiques qu'ils réalisent aux Championnats d'Europe en petit bassin de 2006 à Helsinki.
Aux Championnats d'Europe 2008, il remporte le titre de l'épreuve du 50 m papillon avec un nouveau record d'Europe à la clé. Milorad Čavić a été suspendu de toute compétition à ces championnats et condamné à une amende de 7 000 euros par la commission de discipline de la Ligue européenne car, lors de la cérémonie de remise des médailles, il a arboré un tee-shirt avec l'inscription « le Kosovo est serbe ». Cependant, cette décision ne remet pas en cause l'attribution au nageur serbe de son titre et du record d'Europe[3].
Aux Jeux olympiques d'été de 2008 à Pékin, malgré avoir battu le record olympique en 100 m papillon en qualification, il est battu en finale d'1/100e par Michael Phelps lorsqu'il a remporté sa septième médaille d'or sur les huit de ces Jeux, certaines sources[4] doutant de la validité de la victoire de l'Américain, remettant même en cause le temps officiel d'Omega, également sponsor de Phelps. Čavić a cependant reconnu sur son blog sa défaite[5]. En 2009, il devient champion du monde du 50 m papillon.
médaille d'or de l'épreuve du 100 m papillon (temps : 49 s 19)
médaille d'argent de l'épreuve du 50 m nage libre (temps : 22 s 36)
Record
Record du monde du 100 m papillon, en petit bassin, avec un temps de 50 s 02 réalisé à Dublin, le 12 décembre2003, lors de la finale des Championnats d'Europe. Ce temps constitue le record d'Europe actuel.