Cody Asche had two hits with a double and two RBIs and Roger Bernadina had two RBIs for the Phillies, who have won six of their last eight games.
A.J. Pollock had three hits, including a three-run homer, for Arizona - which has lost four of five.
The game started just 11 hours and 25 minutes after the final out at 2:12 a.m. of Saturday's 7-hour, 6-minute marathon that set a record for length of time of a game for both clubs. This one was more conventional, taking 2 hours, 49 minutes.
Halladay (3-4), who was working back from midseason right shoulder surgery and making his first start since May 5, originally was going to pitch his third minor-league rehab start on Sunday but was pressed into action when Sunday's original starter, Tyler Cloyd, was one of 11 Philadelphia pitchers used on Saturday.
Halladay was helped by some generous run support.
After falling behind 1-0 in the first, the Phillies picked up Halladay with four runs in the bottom of the inning thanks to Asche's two-run double and RBIs from Darin Ruf and Kevin Frandsen.
Arizona pulled within 4-2 in the second on Tuffy Gosewisch's first career RBI, a sacrifice fly, but Halladay settled down after that. The tall right-hander, who struggled with velocity and command early this season, didn't allow another hit until Pollock's two-out single in the sixth.
Using a slow curveball and his trademark cutter that generally reached the high 80's on the stadium radar gun, Halladay struck out two, walked two and allowed four hits. It was his first victory since April 19 against the Cardinals.
The Phillies blew the game open in the sixth with three more runs off Patrick Corbin (13-4), who gave up a season-high nine runs on seven hits with four strikeouts and three walks in 5 1/3 innings. The All-Star left-hander, who had won his previous three starts, hadn't allowed more than five earned runs in any game this season entering Sunday.
Arizona got three of those runs back in the eighth when Pollock hit a two-out, three-run homer off right-hander J.C. Ramirez.
Bernadina made two stellar catches in center field, robbing Matt Davidson of a two-run homer with a leaping grab over the fence in the third and sprawling to snare Gosewisch sinking liner to short center with an all-out dive in the seventh.