Contreras debuterade i Serie Nacional de Béisbol (SNB) för Vegueros säsongen 1991/92. Året efter slogs klubben ihop med lokalkonkurrenten Forestales och hette därefter Pinar del Río.[3] Contreras spelade kvar i klubben till och med 2001/02 och vann ligamästerskapet två gånger, 1996/97 och 1997/98.[4] Hans bästa säsong individuellt var 1996/97, då han hade flest vinster (14), strikeouts (135) och starter (17) i ligan. Vidare hade han även 2000/01 flest starter (23) i ligan och 2001/02 hade han lägst earned run average (ERA) (1,76) i ligan.[5] Sammanlagt var Contreras 117-50 (117 vinster och 50 förluster) under sin karriär i Kuba och hans vinstprocent på 0,701 eller 70,1 % är tredje bäst genom tiderna.[6]
Internationellt
Contreras tog guld för Kuba vid olympiska sommarspelen 1996 i Atlanta. Han deltog i tre matcher i gruppspelet, mot Australien, Sydkorea och Nicaragua. Kuba vann alla tre matcherna och i den första hade Contreras en save. Hans ERA i turneringen var höga 6,23, men han hade 16 strikeouts på 13 innings pitched.[7] Contreras tog även silver vid olympiska sommarspelen 2000 i Sydney. Även här spelade han tre matcher i gruppspelet, denna gång mot Sydafrika, Sydkorea och Australien. Kuba vann alla tre matcherna och i den sista pitchade Contreras en shutout. Han upprepade den bedriften i semifinalen mot Japan. Sammanlagt var hans ERA så låg som 0,86 och han hade 22 strikeouts på 21 innings pitched.[7]
Contreras hoppade av till USA 2002[8], och skrev i februari 2003 på för New York Yankees i Major League Baseball (MLB). Under sin första säsong i MLB var han 7-2 med en ERA på 3,30 på 18 matcher, varav nio starter. Mitt under följande säsong, då han var 8-5 med en ERA på 5,64 på 18 starter, byttes han bort till Chicago White Sox.
Chicago White Sox
Contreras kom att spela för White Sox under drygt fem säsonger, till slutet av 2009. Det första hela året var 2005, då han skördade stora framgångar. Han var 15-7 med en ERA på 3,61 och 154 strikeouts på 32 starter (204,2 innings pitched). Antalet vinster, starter, innings pitched och strikeouts var högst i karriären, och hans fina spel fortsatte i slutspelet där han var 3-1 med en ERA på 3,09 på fyra starter. Säsongen kröntes med seger i World Series mot Houston Astros.
Även följande säsong hade Contreras bra statistik; han var 13-9 med en ERA på 4,27 på 30 starter. För första och enda gången togs han ut till all star-matchen i juli. 2007 var han dock 10-17 med en ERA på 5,57 på 32 matcher, varav 30 starter. En ljuspunkt var att han hade flest shutouts i American League, även om det räckte med två för att få den äran. 2008 gjorde han bara 20 starter och var 7-6 med en ERA på 4,54. I slutet av augusti året efter var han 5-13 med en ERA på 5,42 på 21 starter, när han byttes bort billigt till Colorado Rockies.
Colorado Rockies
Den sista månaden av 2009 års säsong hann Contreras delta i sju matcher, varav två starter, för Rockies där han var 1-0 med en ERA på 1,59. Efter säsongen blev han free agent.
Philadelphia Phillies
I januari 2010 skrev Contreras på för Philadelphia Phillies, där han uteslutande användes som avbytare (reliever). Första säsongen fick han komma in i 67 matcher och gjorde det bra; han var 6-4 med en ERA på 3,34. Året efter spelade han bara 17 matcher och var 0-0 med en ERA på 3,86, och 2012 blev det också bara 17 matcher där han var 1-0 med en ERA på 5,27. Den 1 juni 2012 drabbades han av en allvarlig armbågsskada som satte hans fortsatta karriär i fara.[9] Efter den säsongen blev han free agent.[10]
Pittsburgh Pirates
I februari 2013 skrev Contreras på ett minor league-kontrakt med Pittsburgh Pirates och bjöds in till klubbens försäsongsträning för att försöka ta en plats i spelartruppen.[11] Det lyckades han inte med, men hans spel i Pirates farmarklubbar imponerade på klubbledningen[12] och i början av maj tog han en plats i Pirates spelartrupp efter en ovanligt kort skadefrånvaro med tanke på den allvarliga skadan.[13] Han blev den äldsta spelaren i National League att spela under 2013. Efter bara sju matcher fick han dock problem med ryggen och hamnade på skadelistan.[14] Han var då 0-0 med en ERA på 9,00. Efter skadan fick han bara spela för Pirates högsta farmarklubb Indianapolis Indians innan han i juli bytte klubb till Boston Red Sox.
Boston Red Sox
I sin nya klubb fick Contreras börja i den högsta farmarklubben Pawtucket Red Sox.[15] Han blev inte uppflyttad till Boston och kontraktet avslutades efter bara åtta matcher för Pawtucket.[16]
Texas Rangers
I december 2013 skrev Contreras på ett minor league-kontrakt med Texas Rangers och bjöds in till klubbens försäsongsträning.[17] Han lyckades dock inte ta en plats i Rangers spelartrupp.[18]
Liga Mexicana de Béisbol
Toros de Tijuana
Efter misslyckandet med Rangers skrev Contreras i stället på för Toros de Tijuana i Liga Mexicana de Béisbol (LMB), en minor league på AAA-nivån.[19] Där blev han återigen starter och var under säsongen 10-3 med en ERA på 3,49 på 23 starter. Han spelade även för Tijuana 2015 och var då 2-3 med en ERA på 3,35 på nio starter. Båda säsongerna togs han ut till LMB:s all star-match.
Tigres de Quintana Roo
Contreras spelade 2016 för Tigres de Quintana Roo och var 3-4 med en ERA på 3,79 på tio starter.