He played in Major League Baseball (MLB) from 1996 to 2009 for the Montreal Expos, Seattle Mariners, Houston Astros, Baltimore Orioles, Pittsburgh Pirates, and Toronto Blue Jays.
Chávez played for the Montreal Expos (1996–1997), Seattle Mariners (1998), Houston Astros (2000, 2002–2005), Baltimore Orioles (2006), Pittsburgh Pirates (2008), and Toronto Blue Jays (2009).
He made his 2009 debut catching Ricky Romero at Rogers Centre in Toronto on April 19, in a 1–0 win over the Oakland Athletics.
On June 6, 2009, Chavez hit his first home run for the Toronto Blue Jays, giving them a 2–0 lead over the Kansas City Royals.
On January 14, 2011, the New York Mets signed Chávez to a minor league deal with an invitation to spring training.