The Rockies, who got two home runs from Matt Holliday and one apiece from Troy Tulowitzki and Todd Helton, earned their 75th victory -- one fewer than their total for the entire 2006 season. They finished the night 3 1/2 games behind the National League Wild Card-leading Padres.
The Phillies, who won the opener of the four-game series 6-5 in 10 innings on Monday night, are 2 1/2 back of the Padres.
"It was a good comeback day for us," said manager Clint Hurdle, whose Rockies were smarting from losing two possible runs Monday on a fly ball that they thought should have been ruled a home run. "We did a lot of things well."
The Rockies needed a cool effort from Morales (1-2) before they blew the game open with a four-run sixth inning. They led, 2-0, after homers by Tulowitzki, his 22nd of the season, in the first inning and Helton, his 13th, in the fourth.
Morales yielded a Pat Burrell leadoff double. But he came back from a 3-1 count to fan Ryan Howard swinging. Tulowitzki grabbed Aaron Rowand's bouncer and threw out Burrell at third, but Jayson Werth singled. Wes Helms ran the count full, but Morales fanned him on an 87-mph fastball on the eighth pitch of the at-bat.
"I thought it was a very important step for him," Hurdle said. "He got a lot of things done early, really, without his breaking ball or his changeup. They got a little bit better as the game went on. The fourth inning was a little bit of a test for him, but he answered."
Because of injuries to the starting rotation, the Rockies are depending on Morales and right-hander Ubaldo Jimenez, 23, to pitch beyond their years.
Jimenez, who had another strong start on Monday, had done so, but Morales had struggled. He gave up five runs in three innings against the Giants in his last start, although the Rockies came back and won. He had lost his previous two starts.
Morales said his problem was a jumpy delivery, which he corrected.
"When I stay back, I feel good," Morales said. "I stay more on balance."
Holliday knocked a two-run shot off Adam Eaton (9-9) in the sixth, and led off the ninth with a homer off Fabio Castro. After a 2-for-11 performance in a three-game home set with the Padres, Holliday is 5-for-9 with three homers and four RBIs in two games with the Phils. He leads the team with 28 homers and has established a career high with 116 RBIs.
The Rockies came close to their fifth shutout of the season before struggling left-hander Jeremy Affeldt yielded an eighth-inning leadoff homer to Jimmy Rollins. Affeldt has yielded runs in four of his last five outings.
The Phillies scored later in the inning on reserve shortstop Clint Barmes' throwing error, but Helton a first base made a diving stop on a Greg Dobbs grounder with two out and two on base.