Instead of falling apart on the road, the San Francisco Giants' bullpen fell into place.

Juan Uribe drove in four runs with two singles, providing the Giants' final lead in a back-and-forth game, and a bullpen that has struggled away from home was nearly perfect last night, holding on for a 6-5 victory over the Reds in Cincinnati.

"It's a hitters' park," Giants manager Bruce Bochy said. "You're going to give up more runs here. The 'pen - what a job they did. We had a one-run lead and they came in and did the job."

Uribe had a two-run single in the third and another in the seventh, when the Giants rallied against reliever Daniel Ray Herrera (0-3) and put themselves in position for their ninth win in their last 13 games.

The Giants' bullpen has been a mess on the road this season, putting up a combined 4.96 ERA. It had to survive one of the majors' most hitter-friendly ballparks to keep San Francisco's on its winning surge.

It not only survived, but made it look easy. After starter Barry Zito left with two outs in the sixth, four relievers held the reds without a hit or a walk the rest of the way.

Sergio Romo (2-3) got the victory in relief. Brian Wilson recovered from a blown save in his last outing, pitching a perfect ninth for his 15th save in 17 chances.

"Our bullpen as a whole has a mentality that we're going to go at you with our best stuff," Wilson said. "We're not going to give in, we're not going to pitch around you. With that mentality, you're going to fail sometimes. Tonight we made the pitches when we needed to."

Zito, winless since May 16, couldn't hold an early 4-1 lead that was set up by his rare two-RBI hit.

In other games:

* At Pittsburgh, Carlos Silva (8-0) extended the best start by a Cubs pitcher in 43 years by allowing one run over seven innings, Ryan Theriot scored four times and Chicago beat the Pirates, 6-1.

* At Denver, Jason Hammel pitched 7 1/3 crisp innings and Clint Barmes had a two-run double, lifting the Colorado Rockies to a 5-1 victory over the Houston Astros.

* At Phoenix, Stephen Drew drove in four runs with a single and a bases-loaded triple to lead Arizona to a 7-4 victory over Atlanta.

Noteworthy

* Milwaukee released struggling pitcher Jeff Suppan during the final year of what was the richest contract in team history when he signed it. The Brewers signed Suppan, 35, to a $42 million, 4-year deal before the 2007 season, but he never pitched as strongly as he did in his three previous seasons in St. Louis. The Brewers owe him the remainder of his $12.5 million salary as well as a $2 million buyout of his 2011 club option.