"For a young guy, he held up well," Redmond said. "He changed speeds well and I really like his changeup. He made adjustments and continued to pitch. He competed."
Marlon Byrd hit a two-run homer and David Buchanan threw five effective innings to help the Phillies snap a three-game losing streak.
Buchanan (4-3) allowed two runs and six hits to help the Phillies snap a three-game losing streak. The rookie right-hander struck out Marcell Ozuna on a 3-2 changeup with two runners on and two outs in the fifth, preserving a 4-2 lead. He pumped his fist and shouted as he walked off the mound.
After being shut out Monday for the 10th time this season and seventh time in their last 25 home games, the Phillies jumped ahead 3-0 in the first inning.
Jimmy Rollins was hit by a pitch leading off and Chase Utley walked one out later. On a double steal, catcher Jarrod Saltalamacchia's throw to third bounced away for an error and Rollins scored to snap the team's 21-inning scoreless streak at Citizens Bank Park, dating to June 15.
After Ryan Howard struck out, Byrd hit a 419-foot shot out to left-center to make it 3-0.
"I wanted to go down and away, but went middle and up and he hit it out," Heaney said.
Cody Asche lined a two-run double in the sixth and scored on Bryan Morris' wild pitch for a 7-2 lead.
Rollins had two steals to move into a tie with Hall of Famer Ed Delahanty for second place on the club's career list with 438.
Rollins finished 2 for 2 and also walked. It was his first multi-hit game since May 30, even though he's hit safely in 20 of his last 22 games, including a 15-game hitting streak.
The Marlins got a run in the second when Utley dropped Ed Lucas' infield fly with the bases loaded, allowing Saltalamacchia to score from third. Utley dropped another pop-up in the eighth, but it turned into a fielder's choice.
Ben Revere hit a triple and scored on a wild pitch to give the Phillies a 4-1 lead in the second.
After Giancarlo Stanton's second double of the game put runners on second and third in the fifth, Casey McGehee's sacrifice fly cut it to 4-2.
"In this ballpark, you're never out of a game," Redmond said. "Jones got us back in it. We had some opportunities early. If we'd gotten a big hit, it would have helped."
NOTES: Marlins SS Adeiny Hechavarria had an MRI that revealed a right triceps strain. He could land on the disabled list. ... Miami had four wild pitches, tying a club record. ... A.J. Burnett (5-6, 3.89) goes for the Phillies on Wednesday against Henderson Alvarez (4-3, 2.39).