He signed a three-year $13.1-million contract with the Toronto Blue Jays prior to the season, but struggled in his first season with his new club, posting a 4.80 ERA and losing his starter's job late in the season. In , Batista was the Jays closer and blew 8 saves. He was put on the trading block after the Blue Jays signed B.J. Ryan to a large contract to be their new closer. They traded Batista back to the Diamondbacks during the 2005 offseason along with Orlando Hudson for Troy Glaus and prospect Sergio Santos. Batista's record in Arizona was 11-8 with an ERA of 4.58. During that season, he pitched a complete game on May 30 against the New York Mets.
After the season, the Diamondbacks offered Batista arbitration, as he was a free agent, but Arizona was not willing to commit to a multi-year deal; in December, Batista signed a three-year contract with the Seattle Mariners worth $24 million. Batista had a solid first season with the Mariners, going 16-11 with a 4.29 ERA.