Thanks in part to the Florida Marlins' inept bullpen and defense, the first 10 batters in the ninth reached base, and Philadelphia scored 10 times to win 10-2 Saturday afternoon.
"It was strange," Philadelphia's Pat Burrell said. "Willis pitched a heck of a game. The way things were going, it didn't look good."
Willis (21-9) was on the verge of becoming baseball's first 22-game winner when he took a three-hitter and a 2-0 lead into the ninth. Instead, his streak of victories in six consecutive starts ended.
"When you get a well-pitched game, it's tough to just give it away and play like the Bad News Bears in that one inning," manager Jack McKeon said.
The Phillies won for the sixth time in seven games and remained a half-game behind Houston in the NL wild-card race after the Astros beat Milwaukee 7-0. The stunned Marlins fell 2½ games back with their fourth consecutive loss, and the latest was the kind that can have a lingering effect.
Florida allowed four unearned runs in a nightmarish ninth, committing four errors -- a team record for one inning -- and at least two other fielding lapses.
"I haven't seen anything like it. I can't even explain it," center fielder Juan Pierre said. "It looked like we had everything in hand. To see the wheels fall off, it's a tough one to swallow, especially at this time of year."
Todd Jones blew a save for the first time in his past 28 chances. He faced five batters, gave up five runs and committed a throwing error that allowed Philadelphia to score the go-ahead run.
"If you want to play in the playoffs, you can't do what we did today," Jones said. "When you don't pitch and don't play defense, you're not going to win. I did a little bit of not doing both."
Jimmy Rollins started the comeback with a single leading off the ninth, extending his hitting streak to 23 games, longest in the NL this year. Jason Michaels walked -- the only base on balls allowed by Willis -- and second baseman Luis Castillo failed to glove Bobby Abreu's sharp grounder for an error, scoring a run.
Jones came on to face Burrell, whose short fly dropped in front of Pierre for an RBI single. With runners at first and second, Chase Utley bunted, and Jones made a wild, off-balance throw to first that sailed down the right-field line, putting the Phillies ahead 3-2.
David Bell hit a fly similar to Burrell's, and the ball dropped just beyond Castillo's reach for a single, scoring another run as jeers from the crowd of 27,203 grew louder.
"Things started to go our way," said Phillies manager Charlie Manuel, who earned his 300th career win. "When that second ball to center field fell in, I said, 'Man, this is all right.'"
McKeon said the bloopers hit by Burrell and Bell probably should have both been caught.
Mike Lieberthal followed with an RBI single, and pinch-hitter Ryan Howard hit a grounder that rolled between the legs of first baseman Jeff Conine for another error, scoring another run for a 6-2 Phillies lead.
Pinch-hitter Michael Tucker singled off Ron Villone to load the bases, and Rollins hit a two-run single. Endy Chavez and Shane Victorino, who entered the game as pinch runners in the ninth, closed out the scoring with RBI singles.
Willis watched the meltdown from the dugout but refused to blame his teammates for costing him win No. 22.
"I'm disappointed in myself," he said. "I feel like I let my team down today because we lost the game."
Going back to last weekend, the Phillies have scored 52 runs in their past five games against Florida. Philadelphia, 10-8 against the Marlins this year with one game left, is assured of winning the season series for the first time since 2001.
In the wake of the Phillies' latest victory, McKeon said they reminded him of the 2003 World Series champion Marlins.
"We gave them an opening," McKeon said, "and they cashed in."
- The Marlins recalled infielder Joe Dillon from Triple-A Albuquerque.
- Willis batted eighth, making him the first starting pitcher to bat anywhere other than ninth for the Marlins. He's the first in the majors since Tomo Ohka batted eighth for Montreal on May 30, 2004. Rookie shortstop Robert Andino batted ninth for Florida.
- Felo Ramirez, a Spanish-language radio announcer for 60 years, was honored during the pregame ceremony. He has been with the Marlins since their first game in 1993.