BY THE TIME it was over, Roy Oswalt was in leftfield, Raul Ibanez was at first base, and Ross Gload - who isn't even active - was ejected.

But all that mattered was this:

A game-tying home run by Jimmy Rollins with two outs in the ninth went for naught as the Astros scored two runs in the 16th to hand the Phillies a wild and disheartening 4-2 loss, a game that took 5 hours, 20 minutes.

The Phillies fell to 70-55, but remained 2 1/2 games behind the Braves, who lost to Colorado earlier in the night.

It was already nearing midnight when things took a bizarre turn. Third-base umpire Scott Barry, a minor league umpire filling in for Gerry Davis, called two check-swing strikes on Ryan Howard after appeals from Astros catcher Jason Castro. The second check swing resulted in an inning-ending strikeout, which stranded the go-ahead run on third base. Howard tossed his bat in frustration, which prompted a quick ejection by Barry.

A furious Howard charged toward Barry as his teammates intervened (Gload, on the disabled list with a strained groin, was also ejected).

"I'm sure it was just something that built up from the first check swing. Is it right? Is it wrong? I don't know," centerfielder Shane Victorino said. "I'm not the one to make the judgment on that . . . We've just got to move on. You've got to understand that it's his discretion on how he feels . . .

"Scott's a great guy, but a situation like that, hopefully he can be a little more lenient in that situation. Ryan is not a guy that's going to get upset. But who's right, who's wrong? I'm not going to say anybody is right or anybody is wrong. Scott made his decision and it is what it is. We've just go to overlook that and find a way to win and unfortunately we didn't."

Once the scrum settled, the Phillies, out of position players, were left to make two emergency substitutions. Ibanez, who has 115 career starts at first base, most recently in 2005, replaced Howard. And Oswalt, who is scheduled to start in San Diego Friday, took Ibanez' spot in leftfield.

According to the Phillies, the last pitcher to play the field was Billy Wilson on Aug. 6, 1971.

"That was definitely strange," Ibanez said.

As fate would have it, he and Oswalt recorded all three of the putouts in David Herndon's perfect 15th inning. Oswalt was in perfect position to field a flyout by Castro. Ibanez took a flip from Herndon for the second out and then fielded a Michael Bourn bunt and made a diving tag of first base to end the inning.

But Herndon, who also pitched a scoreless 14th, couldn't hold the Astros in the 16th. After loading the bases with one out, he allowed a single to Chris Johnson and a groundout to Tommy Manzella that pushed two runs home.

The dramatic conclusion came 1 night after a controversial call by first-base umpire Greg Gibson helped the Astros hit a two-run single in the eighth and beat the Phillies, 3-2, when he ruled that Bourn did not run out of the base path on a bunt.

The drama started way back in the bottom of the ninth inning, with Jimmy Rollins at the plate and the Phillies down to their last out. Trailing, 2-1, the shortstop sent a 3-1 fastball into the rightfield seats to tie the game and send it into extra innings.

It turned out to be plenty of extra innings.

By the time it was over, it was easy to forget that the night had started with another strong - and ultimately unfulfilled - outing by Cole Hamels.

The Phillies lefty, who has been plagued by shoddy run support throughout the season, pitched seven innings, striking out eight and allowing only six baserunners. His lone mistake came in the fourth inning, when Carlos Lee hit a two-run home run that gave the Astros a 2-0 lead.

But a 2-0 lead has often been enough for an opponent when Hamels is on the mound. The Phillies entered the night having been outscored, 7-2, in his previous three starts, including a pair of 1-0 losses at the hands of the Mets. They had scored two or fewer runs in seven of his previous 11 outings, a span in which Hamels was 1-5 despite a solid 3.22 ERA.

The Phillies didn't provide Hamels with much support last night.

There were some missed opportunities, the most glaring of which came in the seventh inning, when Astros catcher Humberto Quintero threw out Rollins attempting to steal third base. Before the play, the Phillies had runners on first and second and Chase Utley and Ryan Howard due up. After, they had a runner on second and two out, and Utley hit a fly ball to rightfield that ended the inning.

In three other innings, the Phillies stranded runners on third base. But in reality, they rarely were in position for a rally. The seventh was the only inning in which they had a runner in scoring position with less than two out. In fact nine of their 12 batters who reached base did so with two out.

Howard went 0-for-7 with five strikeouts, the last coming on a questionable called strike by third-base umpire Scott Barry that resulted in his ejection. In four games since returning from a sprained ankle that sidelined him for close to 3 weeks, he is 2-for-19 with 10 strikeouts. In his last eight games overall, he is 2-for-32 with 18 strikeouts.

By the sixth, the Phillies had gone 25 straight innings without scoring a run with Hamels on the mound (the two runs they scored in a 5-2 loss to the Giants last week came after the lefty had departed). That's when they finally got on the board against 25-year-old righthander Bud Norris, who in April had lasted only 2 2/3 innings against them in an 8-0 Astros loss.

Jayson Werth hit a two-out single, then scored on a double by Ibanez to cut the Phils' deficit to 2-1.

Hamels' last victory came on July 11 in a 1-0 win over the Reds. In eight subsequent starts, he is 0-3, despite a 2.83 ERA.

The Phillies' strong bullpen effort included a scoreless ninth inning from closer Brad Lidge, who lowered his ERA to 3.86. *

For more Phillies coverage and opinion, read David Murphy's blog, High Cheese, at http://go.philly.com/highcheese. Follow him on Twitter at