Villarreal was signed by the Diamondbacks as an amateur free agent in. The next year, he made his professional debut with the Rookie League team the AZL Diamondbacks of the Arizona League. In, Villarreal placed second on the team in innings pitched, games started, and strikeouts. Villarreal began the season with the Triple-ATucson Sidewinders. After being demoted to the Single-A South Bend Silver Hawks, Villarreal went 1–0 with a 1.66 earned run average. He was sent back down to Tucson in the Rookie League shortly before being sent up to Single-A High Desert, where he finished the season. In High Desert, he went 0–1 with a 2.70 ERA. Villarreal played the entire season with the Double-A El Paso Diablos, where he logged a 6–9 record with a 4.41 ERA and 108 strikeouts. He began in El Paso, where he compiled a 3.74 ERA with a 6–3 win-loss record. On July 11, Villarreal was sent back up to the Sidewinders, where he went 3–3 with a 4.36 ERA. In the season combined, Villarreal recorded a Minor League career high 125 K's. In 2003, Villarreal earned a spot on the D'backs roster. He made his debut on March 31, and led all MLB rookies in games pitched and ERA. His 86 games pitched also set a new rookie record. He finished second in the league in games pitched to Paul Quantrill, and also tied Brandon Webb's Diamondbacks record for wins by a rookie. However, on June 5, Villarreal suffered an injury when a line drive off the bat of Frank Thomas hit him in the shin. He left the game and was out for 5 days. He returned to the team on June 10 against the Kansas City Royals. On June 23, Villarreal was hurt again. A line drive hit by Craig Biggio struck him in the chest, but he did not leave the game. Villarreal came back to pitch 15.1 scoreless innings in July, and on September 10, he broke the rookie record for games pitched when he appeared in his 79th game. During the season, right-handed hitters only hit.204 off Villarreal. Villarreal missed most of due to a sore elbow, and later elbow surgery. He appeared on Opening Day against the Rockies, and did not allow any runs. In the month of April, he recorded 15 strikeouts in 12.1 innings, while only walking one batter. Villarreal was placed on the disabled list on May 10 with a strained right flexor. After playing on a rehab assignment with the Tucson Sidewinders in July, doctors took an MRI on Villarreal's elbow on August 6 and determined that he would need to undergo season-ending nerve transposition surgery. Villarreal returned in 2005, and ended up having another season shortened by an arm injury. He started the year with Triple-A Tucson before being called back up to the bigs on April 9. He pitched 1.2 scoreless innings on April 9 and left the next game against the Los Angeles Dodgers with a sore right shoulder. Villarreal had strained his rotator cuff, and the injury landed him on the DL until September 2. In his first game back in the majors, Villarreal surrendered a home run. He won a game on September 17, which was his first big-league victory since September 25, 2003. Villarreal finished the season with 2 wins and no losses, 5 strikeouts, and a 5.27 earned run average.
Atlanta Braves
On December 7, 2005, Villarreal and fellow pitcher Lance Cormier were traded to the Atlanta Braves for catcherJohnny Estrada. In his first year with the Braves, Villarreal went 9–1 with 55 strikeouts and a 3.61 ERA in 58 games.
Houston Astros
On November 16, 2007, he was traded to the Houston Astros for outfielderJosh Anderson. On December 28, 2007, the Astros signed Villarreal to a two-year contract worth $2.85 million, with a club option for 2010. After being designated for assignment, Villarreal refused a minor league assignment and became a free agent.
Seattle Mariners
He signed a minor league contract with the Seattle Mariners and was assigned to their Triple-A affiliate, the Tacoma Rainers, on July 22, 2008. He was released after a few weeks due to his desire to become a free agent and sign elsewhere.
On August 16, Villarreal signed a minor league contract with the Colorado Rockies and was assigned to Triple-A Colorado Springs. He became a free agent at the end of the season.
Late in 2012, he signed a minor league contract with the Boston Red Sox with spring training invitation and was assigned to AAA Pawtucket. He posted a 4-2 record and a 4.44 ERA in 14 relief appearances for the PawSox before being released on June 6, 2013.
Family
Villarreal and his wife Claudia have one daughter, Valeria, and three sons, Oscar, Máx and Mateo . The family resides in Monterrey, Nuevo León, Mexico.