Howard hit a two-run drive in the sixth and a solo shot in the eighth for his seventh multihomer game this season. The first homer came on a 2-0 count with the Marlins leading 1-0, and the second came with one out.
Both times rookie Scott Olsen threw Howard a fastball.
"Except for a couple of pitches to Ryan, I pitched a good game," Olsen said. "He's got 56 home runs for a reason."
Marlins manager Joe Girardi hinted that he would have preferred for Olsen (12-8) to pitch around Howard.
"We've talked about not letting him beat us," Girardi said. "Ollie made some mistakes to one guy. He's one guy in the league right now you can't afford to make mistakes to. All I'm going to say is we didn't execute the way we were supposed to."
Howard said he was a bit surprised the Marlins pitched to him. Even with 80 walks this season, he's on pace to finish with 64 home runs and 159 RBI.
Manager Charlie Manuel said he projected Howard to hit 30 to 40 homers this year, his second in the big leagues.
"He's going to double the homers," Manuel said. "It's fun watching him. I'd come to the ballpark just to watch him."
Howard is keeping the Phillies in playoff contention, and they've won the first two games in a four-game series between NL wild-card contenders.
"We need to win a couple more," Manuel said. His team began the night 2 ½ games behind wild-card leader San Diego, while Florida trailed by 3 ½ games.
Moyer (2-1), making his 514th start and his first against Florida, allowed five hits and one run and threw only 90 pitches.
Tom Gordon pitched the ninth for his 28th save in 32 chances, and his first since being sidelined Aug. 12 by a strained right shoulder. He gave up a double to Miguel Cabrera and a sacrifice fly to Mike Jacobs.
The game drew a crowd of 21,432, the best of the week for the attendance-challenged Marlins, and it became a pitching duel between the 43-year-old Moyer and the 22-year-old Olsen.
Nursing a 1-0 lead, the Marlins' left-hander limited Philadelphia to two hits until the sixth. Shane Victorino led off with a single, and Howard homered over the scoreboard in left field.
Howard connected against Olsen again in his next at-bat.
"I'm glad he's on my team," Victorino said.
Olsen has given up only one other homer to a left-handed hitter this season. Howard has 15 home runs against lefties, and he has homered in 11 of the past 16 games.
"Amazing," Manuel said.
Is Howard amazing himself?
"A little bit," he said. "But as soon as something like today happens, you try to forget it as soon as possible. You try not to get sucked in by everything that's going on and stay focused on the task at hand, which is trying to get the playoffs."
Florida's first run scored in the second on a single by Wes Helms and a triple by Miguel Olivo. Moyer didn't walk a batter and has walked only three in 27 1/3 innings since joining the Phillies on Aug. 19.
"He doesn't light the radar gun, but he'll get you out," Manuel said. "He takes the sting out of your bat."
Olsen pitched 7 2/3 innings and struck out seven, giving him 147 this season to break Dontrelle Willis' club rookie record of 142 set in 2003.
|Newly acquired Jeff Conine gives Ryan Howard some respect after he launches yet another HR. (AP)|
|Players of the Game|
New Era Phillies Fitted Hat
$34.95 Shop Now!
|Jimmy Rollins, SS||5||0||1||0||0||1||1||.279|
|Shane Victorino, CF||4||1||1||0||0||0||1||.295|
|Chase Utley, 2B||4||0||0||0||0||2||1||.303|
|Ryan Howard, 1B||4||2||3||3||0||0||0||.311|
|Jeff Conine, RF-LF||4||0||2||0||0||0||1||.270|
|Pat Burrell, LF||4||0||1||0||0||1||3||.254|
|Chris Roberson, PR-RF||0||0||0||0||0||0||0||.211|
|Chris Coste, C||3||0||0||0||1||2||2||.324|
|Jose Hernandez, 3B||3||0||0||0||1||1||2||.275|
|Jamie Moyer, P||3||0||0||0||0||1||1||.077|
|a- Randall Simon, PH||1||0||0||0||0||0||0||.429|
|Tom Gordon, P||0||0||0||0||0||0||0||.000|
|a-grounded out for Moyer in the 9th|
|2B - Ryan Howard (19, Olsen), Pat Burrell (23, Olsen)|
|3B - Jimmy Rollins (7, Olsen)|
|HR - Ryan Howard 2 (56, Olsen, Olsen)|
|RBI - Ryan Howard 3 (138)|
|Team LOB - 7|
|DP - Hernandez-Utley-Howard|
|Jamie Moyer (W,8-13)||8||5||1||1||0||4||0||4.32|
|Tom Gordon (S,28)||1||1||1||1||0||1||0||3.33|
|HBP - Cabrera (by Jamie Moyer)|
|Pitches-Strikes - Jamie Moyer 90-64, Tom Gordon 13-9|
|Ground Balls-Fly Balls - Jamie Moyer 10-9, Tom Gordon 1-1|
|Batters Faced - Jamie Moyer 29, Tom Gordon 4|
|Hanley Ramirez, SS||4||0||0||0||0||1||0||.279|
|Dan Uggla, 2B||4||0||1||0||0||1||0||.286|
|Miguel Cabrera, 3B||3||1||1||0||0||0||1||.339|
|Josh Willingham, LF||4||0||0||0||0||0||3||.276|
|Wes Helms, 1B||3||1||2||0||0||1||0||.312|
|a- Mike Jacobs, PH||0||0||0||1||0||0||0||.270|
|Joe Borchard, RF||4||0||0||0||0||1||2||.231|
|Miguel Olivo, C||3||0||2||1||0||0||0||.271|
|Alfredo Amezaga, CF||3||0||0||0||0||1||1||.271|
|Scott Olsen, P||2||0||0||0||0||0||1||.184|
|Taylor Tankersley, P||0||0||0||0||0||0||0||.000|
|b- Cody Ross, PH||1||0||0||0||0||0||0||.228|
|Joe Borowski, P||0||0||0||0||0||0||0||.000|
|a-hit a sacrifice fly for Helms in the 9th|
|b-flied out for Tankersley in the 8th|
|2B - Dan Uggla (25, Moyer), Miguel Cabrera (47, Gordon)|
|3B - Miguel Olivo (3, Moyer)|
|SF - Mike Jacobs (5)|
|RBI - Mike Jacobs (75), Miguel Olivo (51)|
|Team LOB - 4|
|Scott Olsen (L,12-8)||7.2||8||3||3||2||7||2||4.01|
|Pitches-Strikes - Scott Olsen 108-77, Taylor Tankersley 3-3, Joe Borowski 10-5|
|Ground Balls-Fly Balls - Scott Olsen 8-8, Joe Borowski 1-2|
|Batters Faced - Scott Olsen 33, Taylor Tankersley 1, Joe Borowski 3|
|Attendance - 21432|
|Game Time - 2:20|
|Temperature - 81|
|Umpires - Home - Tim Tschida, First Base - Gary Cederstrom, Second Base - Laz Diaz, Third Base - Rick Reed|