Aubrey Huff singled with one out in the ninth and took third when Buster Posey singled for his fourth hit of the game. Uribe hit a medium-deep fly, leaving left fielder Ben Francisco with no chance to get the sliding Huff.
Boosted by yet another big hit from Cody Ross and a timely double from Pablo Sandoval, the Giants pushed the two-time defending NL champion Phillies to the brink of elimination. Philadelphia will Roy Halladay against Tim Lincecum in Game 5 Thursday night - it's a rematch of aces that Lincecum won in the opener.
Going to Oswalt to begin the ninth backed manager Charlie Manuel's words this was his club's biggest game yet this year. Oswalt is one of the majors' top starters and beat the Giants in Game 2. He's made only a few relief appearances in the last several years, including a stint in the 2004 NLCS for Houston.
Uribe, sore left wrist and all that kept him out of the starting lineup, entered at shortstop in the top of the ninth. He immediately picked up a hard one-hopper by pinch-hitter Ross Gload in the hole and made a strong throw while falling away for the out.
Major league saves leader Brian Wilson pitched a perfect ninth for the win.
After Freddy Sanchez lined out to right to start the bottom half, Huff and Posey singled. Phillies right fielder Jayson Werth made a nice sliding stop on the warning track to keep Huff from scoring.
Then came Uribe, a quiet 1 for 7 in the NLCS before this one. On a 1-1 pitch, he claimed he got hit in the hand by Oswalt's fastball, but plate umpire Wally Bell said it was a foul.
Uribe wound up with the game-winner moments later, leaving the Giants just one victory shy of reaching the World Series for the first time in eight years.
Posey starred at the plate and behind it, too. He made a great play at the plate to save a run earlier, neatly handling a short hop and tagging out Carlos Ruiz at the plate.
Werth hit a tying RBI double in the eighth after Ryan Howard doubled against Javier Lopez leading off the inning.
Posey had an RBI double in the first and run-scoring single in the third - both coming with two outs - for his first RBIs of the postseason. He added a seventh-inning double as well, delighting the towel-waving faithful on a chilly fall night.
Philadelphia's Placido Polanco hit a two-run double in the fifth inning of a game that went back and forth.
Manuel stuck with Joe Blanton rather than going to Halladay on short rest. Blanton hung tough in his first start in three weeks but was done after allowing Huff's two-out single in the fifth.
Pat Burrell drew a leadoff walk in the sixth and Ross followed with a double. Sandoval swung at Chad Durbin's first offering and the ball was ruled foul by first base umpire Jeff Nelson after right field umpire Ted Barrett jumped out of the way. Replays showed it was very close. Giants manger Bruce Bochy came out to argue. Moments later, Sandoval made good with his two-run double for a 5-4 lead.
That swing made the "Kung Fu Panda" an unlikely postseason contributor for San Francisco, which has been riding the reliable bat of Ross all series long. Sandoval, coming off a disappointing year in which he batted just .268, earned his first start of the NLCS when Uribe couldn't go.
Sandoval grounded into an inning-ending double play in the seventh. That after he grounded into an NL-high 26 double plays this season.
Ross produced again. He hit a go-ahead RBI single Tuesday after connecting for three home runs over the two games in Philadelphia. After Cole Hamels joked about hitting Ross as a way to slow him down, Blanton did just that to start the second. Not that it was on purpose: Blanton threw two wild pitches in the first.
One fan waved a "Ross for Governor" sign. Another read: "This is Rosstober."
But by the end, the familiar chants or "U-ribe! U-ribe!" rang through the Giants' packed waterfront ballpark.
Aaron Rowand, a former Gold Glover earning a second straight start in center field, made a fabulous throw home to save a second run from coming in on Shane Victorino's RBI single in the fifth. Posey, the rookie catcher, made a tremendous pickup on the short hop and applied the tag as the slow-footed Ruiz slid home.
Rowand was replaced in a double switch by Andres Torres one batter later.
Bochy again made all the right moves.
He stuck with Rowand in center field in place of the slumping Torres until the midgame switch. Sandoval was fresh and ready to fill in for Uribe, a late scratch before Game 2 at Citizens Bank Park on Sunday before playing Tuesday. The wrist had bothered Uribe when swinging, Bochy said.
There was no sign of that on his final cut.
Rookie Madison Bumgarner, a 21-year-old lefty who pitched the NLDS clincher Oct. 11 at Atlanta, struck out six in 4 2-3 innings in his first time facing the Phillies.
Manuel benched struggling Raul Ibanez, who is mired in an 0-for-15 funk dating to the division series with Cincinnati. Francisco replaced him in left field and he produced his first postseason hit with a leadoff single in the fifth. He had been 0 for 12.
Notes: Sandoval had his first multi-RBI game since Aug. 24 vs. Cincinnati when he had four. ... Posey went 27 at-bats before getting his first postseason RBI. ... Blanton had just two wild pitches this season in 175 2-3 innings. ... In a strange stat, both teams came in with a 2.77 ERA and 29 strikeouts in the NLCS coming into the game. Each team batted .212 in the division series. ... Uribe hit the second game-ending sacrifice fly in NLCS history. Houston's Denny Walling had the other, also against the Phillies, on Oct. 10, 1980, according to the Elias Sports Bureau.