After a successful 2006 campaign, Villanueva entered the 2007spring training in competition for the Brewers fifth spot in the starting rotation. Despite pitching well, he lost the job to Claudio Vargas. Instead, manager Ned Yost elected to put Villanueva into the bullpen as a middle relief pitcher. Villanueva pitched well in his new role and was occasionally used as a long relief pitcher when Elmer Dessens was placed on the DL. On July 2, Villanueva had a 6–0 win–loss record with a 2.64 earned run average (ERA). Despite his record, Villanueva was accustomed to only being used as a starting pitcher, and had never appeared in more than 25 games in his professional career. Through July and August, he posted a 1-3 record with an ERA of over 9, perhaps a sign of being overworked. Despite his struggles, he was still being used as a middle relief pitcher. On August 20, after pitching 3 perfect innings against the Arizona Diamondbacks and picking up his first career save, he was optioned to the Triple-A Nashville Sounds to make two starts to "polish up" for a September call up when the rosters expand.
Villanueva spent a short part of the 2009 season as the closer while Trevor Hoffman recovered on the disabled list;[6] however, after poor performances, the role was given to Todd Coffey instead.[7]
He is currently serving with the Milwaukee Brewers as a Special Assistant to the General Manager/Player Development. [8]
Toronto Blue Jays
On December 3, 2010, Villanueva was traded to the Toronto Blue Jays for a player to be named later (cash).[9]
After starting the season in the bullpen for the Blue Jays, he was moved to a position in the starting rotation to fill in for open spots previously filled by Brett Cecil and Jesse Litsch. On August 4, 2011, Villanueva was placed on the 15-day disabled list with a right forearm strain. Villanueva was re-activated from the disabled list on August 31. Brian Tallet was designated for assignment to make room for Villanueva.[10] Villanueva began the 2012 season as the long reliever in the Jays' bullpen, but was promoted to a starter after numerous injuries to the pitching staff. After posting a 6-1 record, Villanueva left the team for personal reasons on August 5. J. A. Happ started in place of Villanueva.[11] He became a free agent following the season.
Chicago Cubs
On December 19, 2012, it was reported that Villanueva had agreed a two-year, $10 million contract with the Chicago Cubs.[12] The deal became official on January 26, 2013, more than a month after it was initially agreed upon. Lendy Castillo was designated for assignment to make room for Villanueva on the 40-man roster. Dale Sveum made Villanueva the Cubs fifth starter in their rotation.[13] His first game on April 6, a road game against the Atlanta Braves, resulted in a no decision.[14] He became a free agent following the 2014 season.
St. Louis Cardinals
On February 4, 2015, the St. Louis Cardinals signed Villanueva to a minor league contract that included an invitation to spring training.[15] The Cardinals added him to their 40-man roster on March 30.[16] On June 27, he pitched the last three innings of an 8–1 victory over the Cubs for his first save of the season,[17] and did so again on August 7 against the Brewers in a 6–0 win.[18] It was his fourth[17] and fifth career save of at least three innings. Villanueva pitched solely out of the bullpen in 2015 and was credited with a 4–3 record with two saves, 55 strikeouts, and 50 hits and 21 walks allowed. He posted career-bests in ERA (2.95) and inherited runners strand rate (80.5 percent); the WHIP (1.16), batting average on balls in play (.265) and batting average against (.220) were his best figures since his first MLB season with the Brewers.[19] He became a free agent following the season.
San Diego Padres
On January 13, 2016, the San Diego Padres signed Villanueva to a one-year, $1.5 million contract.[19]
Hanwha Eagles
On February 24, 2017, he signed with the Hanwha Eagles of the KBO League.[20] He became a free agent following the season.