Chavez werd oorspronkelijk opgesteld in de 39e ronde van de middelbare school door de Chicago Cubs, maar koos ervoor om naar de universiteit te gaan. Chavez werd later opgesteld door de Texas Rangers in de 2002 Major League Baseball Draft Uit Riverside Community College. In 2006 werd Chavez gepromoveerd naar Triple-A Oklahoma waar hij een wedstrijd gooide voordat hij werd verhandeld.Op 31 juli 2006 ruilden de Rangers Chavez tegen de Pittsburgh Pirates voor Kip Wells. Hij werd toegewezen aan de Triple-A Indianapolis Indians waar hij gooide de rest van het seizoen en heel 2007.Chavez verscheen in 51 wedstrijden voor de Indians in 2007, pitching naar een 3,80 verdiende run average (ERA), en werd gepromoveerd naar de majors op 27 augustus, waardoor hij dezelfde dag zijn debuut maakte. Hij had een 4.48 era in 821⁄3 innings gegooid voor de Pirates van 2008-2009.Op 3 November 2009 ruilden de Pirates Chavez voor de tweede honkman Akinori Iwamura tegen de Tampa Bay Rays. Op 10 December werd hij opnieuw geruild naar de Atlanta Braves voor Rafael Soriano.Hij had een era van 5,89 in 362⁄3 innings gegooid voor de Braves in 2010.Op 31 juli 2010 werd Chavez, samen met Gregor Blanco en Tim Collins, geruild voor Rick Ankiel en Kyle Farnsworth. Op 11 oktober 2011 werd hij door de Royals aangesteld.
hij had een 6.95 era in 332⁄3 innings gegooid voor The Royals van 2010-2011.Toronto Blue Jaysedit
op 21 oktober 2011 werd hij opgeëist door de Toronto Blue Jays. Op 27 mei 2012 werd Chavez opgeroepen voor de Triple-A Las Vegas 51s. hij was 6-2 met een 3.72 ERA in 10 wedstrijden met Las Vegas.Hij werd op 4 augustus teruggeroepen. Op 5 augustus werd hij echter teruggestuurd om ruimte te maken voor de promotie van Chad Jenkins van de New Hampshire Fisher Cats.Op 24 augustus 2012 werd Chavez geruild voor de Oakland Athleticsedit (2783) naar de Oakland Athleticsedit (6287).Chavez begon het seizoen 2013 met de Triple-A Sacramento River Cats. Hij werd op 20 April teruggeroepen door Oakland en op 29 April teruggestuurd naar Sacramento. Hij werd op 10 mei weer teruggeroepen. Op 13 juni gooide Chavez 52⁄3 shutout innings of relief in een 18-inning wedstrijd tegen de New York Yankees. Op 31 juli gooide Chavez voor het eerst tegen de Blue Jays sinds hij werd verhandeld naar Oakland en nam het verlies, wat 3 punten opleverde in de 10e inning.Chavez werd toegevoegd aan Oakland om het seizoen 2014 te openen vanwege de blessures van Jarrod Parker en A. J. Griffin. Hij zette carrière highs in starts en innings pitched, en eindigde met een 8-8 record met een 3.45 ERA.Op 12 januari 2015 sloten Chavez en de atletiek zich aan bij een eenjarig contract ter waarde van 2,15 miljoen dollar. Chavez werd geplaatst in de bullpen om het seizoen te starten. Op April 23, hij werd verplaatst naar de rotatie en eindigde het maken van 26 starts voor Oakland, een carrière hoog, pitching naar een 7-15 record en een 4.18 ERA. Zijn seizoen eindigde midden September toen hij werd gediagnosticeerd met een niet-verplaatste breuk in zijn ribben.Op 20 November 2015 ruilde de atletiek Chavez voor Liam Hendriks naar de Blue Jays. Hij en de Blue Jays kwamen niet tot een overeenkomst voor de salaris arbitrage deadline op 15 januari 2016. Chavez was op zoek naar $4 miljoen, terwijl de Blue Jays tegen $3,6 miljoen. Op 6 februari werd bekend dat Chavez zijn arbitragezaak had gewonnen. Chavez ging spring training in competitie voor de vijfde starter rol met Aaron Sanchez, Drew Hutchison, en Gavin Floyd. Op 28 maart werd bekend dat Sanchez de vijfde starter van het team zou zijn en dat Chavez het seizoen zou beginnen in de bullpen. Chavez gooide naar een 1-2 record, 4.57 ERA, en 42 strikeouts in 411⁄3 innings alvorens te worden verhandeld.Op 1 augustus 2016 ruilden de Blue Jays Chavez tegen de Los Angeles Dodgers voor Mike Bolsinger. Hij speelde in 23 wedstrijden voor de Dodgers met een 4.21 ERA.Op 11 November 2016 tekende Chavez een contract van 5,75 miljoen dollar voor een jaar bij de Los Angeles Angels. Chavez werd gekozen om te starten in de Angels rotatie aan het begin van het seizoen als gevolg van de scheuring van blessures. Chavez maakte 21 starts, going 5-9 met een 5.24 Tijdperk alvorens in de bullpen na de All Star breuk. Chavez eindigde het seizoen 7-11 in 38 wedstrijden, 21 starts.Op 23 februari 2018 tekende Chavez een eenjarig contract bij de Texas Rangers.Op 19 juli 2018 werd Chavez overgenomen door de Chicago Cubs voor de minor league werpster Tyler Thomas. Chavez postte een indrukwekkende 1.15 tijdperk in 32 optredens met de Cubs.In November 2018 tekende Chavez een contract voor twee jaar om terug te keren naar de Texas Rangers. Chavez werd op 13 augustus op de lijst van gewonden geplaatst met een elleboogontsteking, die voortkwam uit een botspoor. Hij eindigde het seizoen 2019 met 3-5 met een 4.85 ERA in 78 beurten. Chavez onderging een operatie om losse lichamen van zijn elleboog te verwijderen op 9 September. Het volgende seizoen, Chavez worstelde machtig op de melodie van een 6.88 ERA in 17 innings.