Chavez a été repêché au 39e tour par les Cubs de Chicago, mais a choisi d’aller à l’université à la place. Chavez a ensuite été repêché par les Rangers du Texas lors du repêchage de la Ligue majeure de Baseball de 2002 au Riverside Community College. En 2006, Chavez a été promu en Triple-A Oklahoma où il a lancé un match avant d’être échangé.
Pirates de Pittsburgh
Les Rangers échangent Chavez aux Pirates de Pittsburgh contre Kip Wells le 31 juillet 2006. Il a été assigné aux Indians d’Indianapolis Triple-A où il a lancé le reste de la saison et toute la saison 2007.
Chavez apparaît dans 51 matchs pour les Indians en 2007, présentant une moyenne de points mérités de 3,80 et est promu dans les majeures le 27 août, faisant ses débuts le même jour. Il a une moyenne de 4,48 en 821⁄3 manches lancées pour les Pirates de 2008 à 2009.
Braves d’Atlanta
Les Pirates échangent Chavez le 3 novembre 2009 aux Rays de Tampa Bay en échange du joueur de deuxième but Akinori Iwamura. Le 10 décembre, il est de nouveau échangé aux Braves d’Atlanta contre Rafael Soriano.
Il a une moyenne de 5,89 en 362⁄3 manches lancées pour les Braves en 2010.
Royals de Kansas City
Le 31 juillet 2010, Chavez est échangé aux Royals de Kansas City avec Gregor Blanco et Tim Collins contre Rick Ankiel et Kyle Farnsworth. Les Royals l’ont désigné pour affectation le 11 octobre 2011.
Il a une moyenne de 6,95 en 332⁄3 manches lancées pour les Royals de 2010 à 2011.
Toronto Blue JaysEdit
Le 21 octobre 2011, il est réclamé au ballottage par les Blue Jays de Toronto. Il a été désigné pour une affectation le 12 décembre, mais a obtenu des dérogations et a été rétrogradé en Triple-A.
Le 27 mai 2012, Chavez a été appelé des 51s de Las Vegas Triple-A. Il avait une fiche de 6-2 avec une MOYENNE de 3,72 en 10 matchs avec Las Vegas.Il a été rappelé le 4 août. Le 5 août, cependant, il est renvoyé pour faire de la place pour la promotion de Chad Jenkins des Fisher Cats du New Hampshire.
Oakland AthleticsEdit
Chavez a été échangé aux Athletics d’Oakland le 24 août 2012, en échange de considérations monétaires.
Chavez commence la saison 2013 avec les River Cats de Sacramento. Il est rappelé par Oakland le 20 avril et renvoyé à Sacramento le 29 avril. Il a été rappelé à nouveau le 10 mai. Le 13 juin, Chavez lance 52⁄3 manches de travail en relève dans un match de 18 manches contre les Yankees de New York, remportant la victoire. Le 31 juillet, Chavez lance contre les Blue Jays pour la première fois depuis qu’il a été échangé à Oakland et encaisse la défaite, produisant 3 points en 10e manche.
Chavez a été ajouté à la rotation de départ d’Oakland pour ouvrir la saison 2014, en raison des blessures printanières de Jarrod Parker et A.J. Griffin. Il a établi des sommets en carrière en départs et en manches lancées, et a terminé avec une fiche de 8-8 avec une moyenne de 3,45.
Le 12 janvier 2015, Chavez et les Athletics ont convenu d’un contrat d’un an d’une valeur de 2,15 millions de dollars, évitant ainsi l’arbitrage. Chavez a été placé dans l’enclos des releveurs pour commencer la saison. Le 23 avril, il a été transféré dans la rotation et a fini par effectuer 26 départs pour Oakland, un sommet en carrière, présentant un dossier de 7-15 et une moyenne de 4,18. Sa saison s’est terminée à la mi-septembre lorsqu’on lui a diagnostiqué une fracture non déplacée des côtes.
Deuxième passage avec Toronto
Le 20 novembre 2015, les Athletics échangent Chavez aux Blue Jays contre Liam Hendriks. Les Blue Jays et lui ne se sont pas entendus avant la date limite d’arbitrage salarial du 15 janvier 2016. Chavez cherchait 4 millions de dollars, tandis que les Blue Jays ont répliqué à 3,6 millions de dollars. Le 6 février, il a été annoncé que Chavez avait gagné sa cause d’arbitrage. Chavez a participé à l’entraînement de printemps en compétition pour le cinquième rôle de partant avec Aaron Sanchez, Drew Hutchison et Gavin Floyd. Le 28 mars, il a été annoncé que Sanchez serait le cinquième partant de l’équipe et que Chavez commencerait la saison dans l’enclos des releveurs. Chavez présente une fiche de 1-2, une moyenne de 4,57 et 42 retraits sur des prises en 411⁄3 manches avant d’être échangé.
Dodgers de Los Angeles
Le 1er août 2016, les Blue Jays échangent Chavez aux Dodgers de Los Angeles contre Mike Bolsinger. Il est apparu dans 23 matchs pour les Dodgers avec une moyenne de 4,21.
Los Angeles AngelsEdit
Le 11 novembre 2016, Chavez signe un contrat d’un an de 5,75 millions de dollars avec les Angels de Los Angeles. Chavez a été choisi pour commencer dans la rotation des Anges au début de la saison en raison de la foule de blessures. Chavez a effectué 21 départs, avec une fiche de 5-9 avec une moyenne de 5,24 avant d’être placé dans l’enclos des releveurs après la pause du match des étoiles. Chavez a terminé la saison 7-11 en 38 matchs, 21 départs.
Texas RangersEdit
Le 23 février 2018, Chavez signe un contrat d’un an avec les Rangers du Texas.
Chicago CubsEdit
Le 19 juillet 2018, Chavez est acquis par les Cubs de Chicago pour le lanceur des ligues mineures Tyler Thomas. Chavez a affiché une impressionnante moyenne de 1,15 en 32 apparitions avec les Cubs.
Deuxième passage avec TexasEdit
En novembre 2018, Chavez signe un contrat de 2 ans pour retourner aux Rangers du Texas. Chavez a été placé sur la liste des blessés le 13 août pour une inflammation du coude, qui provenait d’un éperon osseux. Il a terminé la saison 2019 avec une fiche de 3-5 avec une moyenne de 4,85 en 78 manches. Chavez a subi une intervention chirurgicale pour retirer les corps lâches de son coude le 9 septembre. La saison suivante, Chavez a lutté puissamment au rythme d’une moyenne de 6,88 en 17 manches.