PHILADELPHIA -- Swept out of Washington by the woeful Nationals, the Florida Marlins jumped back in the playoff race with a dominant weekend in Philadelphia.
Josh Johnson pitched six impressive innings, helping the Marlins complete a three-game sweep over the Phillies with a 12-3 victory on Sunday.
The Marlins moved within four games of the NL East leaders with their first sweep in Philadelphia since April 2004.
"In this position, you want to sweep," third basemen Wes Helms said. "The sweep rescued us big time. We could've left here eight to 10 games out."
Florida lost three in a row to last-place Washington and arrived in Philly on the verge of falling out of contention. But the Marlins outplayed the sluggish Phillies to narrow the gap.
Philadelphia fell to 3-8 since acquiring reigning AL Cy Young Award winner Cliff Lee in a blockbuster deal with Cleveland on July 29.
Phillies manager Charlie Manuel clearly was upset by his team's performance and addressed the players after the game.
"I hope my message was sent," he said. "I was upset how we played today. We lost our composure. We did some things we usually don't do. We definitely can be much better than that. We are better than that."
Johnson (11-2) allowed one run and four hits, striking out six. The All-Star right-hander is 18-3 since having Tommy John surgery in August 2007.
Jamie Moyer (10-9) gave up three runs and 11 hits in five-plus innings, failing to strengthen his case to stay in Philadelphia's crowded rotation. He fell to 13-3 lifetime against the Marlins.
"I'm not really concerned about any ramifications," Moyer said.
Moyer could be the odd man out when Pedro Martinez is ready to make his Phillies debut. The 46-year-old Moyer leads the staff in wins, but his 5.47 ERA was third-worst in the majors.
The Phillies have to make a decision soon, though general manager Ruben Amaro Jr. has suggested they might use a six-man rotation.
Lee, World Series MVP Cole Hamels and Joe Blanton have three spots locked up. Amaro already said rookie J.A. Happ is staying put. Martinez, a three-time Cy Young Award winner, could make his first start this week after signing a one-year contract last month.
Phillies center fielder Shane Victorino was ejected by plate umpire Ed Rapuano in the top of the seventh after Rodrigo Lopez's 0-2 pitch to Helms was called a ball. Victorino threw his hands in the air, prompting the ejection. He charged in from the outfield after getting tossed, but was stopped by catcher Paul Bako and first baseman Ryan Howard.
The sellout crowd gave Rapuano an earful the rest of the long inning, alternating loud boos with "Vic-tor-ino" chants.
"I love Ed. He's a great guy, one of the best umpires in the game," Victorino said. "It's unfortunate what happened. I let my emotions get the best of me. I hope Ed doesn't hold it against me."
The Marlins scored six runs off Lopez with two outs in the seventh to put the game out of reach. Coghlan gave the Marlins a 6-1 lead with a bases-clearing single to center. Jayson Werth, who replaced Victorino, missed the ball, allowing the third run to score from first and sending Coghlan all the way to third.
Moyer left to a standing ovation in the sixth. He shut Florida down until the fifth. With one out, Emilio Bonifacio reached when Bako couldn't pick up his bunt for an error. Ramirez lined a single to center and Cantu looped a broken-bat single to left to tie it at 1. Helms followed with a bloop single to center, scoring Ramirez. Ross lined a single just over third baseman Pedro Feliz's glove, scoring Cantu for a 3-1 lead.
Feliz hit a two-run homer off Dan Meyer in the seventh.
Phillies LHP J.C. Romero will have an MRI exam Monday on his strained left forearm. Romero experienced tightness in his forearm in a rehab appearance on Friday night. ... The Marlins are 0-6 against the Phillies at home, but 5-1 on the road. ... The Phillies tied a club record with their 50th sellout. They had the same total last year. ... Marlins RHP Kiko Calero left in the eighth with right knee pain.