Raul Ibanez had two hits and drove in a run for the Phillies, who won for the 14th time in their last 16 games and have a seven-game lead in the National League East over Atlanta and Florida, who are tied for second.
Moyer (10-7) got the win after scattering six hits, walking four and striking out five.
Jon Garland (5-10) took the loss -- his eighth setback in his last nine decisions -- giving up six runs on five hits.
Mark Reynolds hit a home run for the Diamondbacks, who lost for the first time in three games.
Brad Lidge pitched a perfect ninth in a non-save situation for the Phillies.
Copyright 2009 by United Press International.