SAN FRANCISCO -- They were celebrating in the Miami locker room on the West Coast, too, Thursday night.
OK, there was no music or champagne at AT&T Park. However, there was one beer bath on a memorable night for Miami Marlins rookie pitcher Tom Koehler.
The right-hander, who was threatening the franchise record for starts to begin a major league career without recording a win, finally emerged victorious when the Marlins rallied for a 2-1 win over the San Francisco Giants.
Koehler was rewarded for his best effort of the season when pinch hitter Marcell Ozuna flared a two-out, two-strike, two-run single to right field in the eighth inning.
Minutes after the Miami Heat had wrapped up the NBA title with a Game 7 win over the San Antonio Spurs in the NBA Finals, Koehler (1-5) was one strike away from not getting the win for a ninth consecutive start, eight of them this year. But then Ozuna came through with what he called the first pinch-hit of his life, producing a Heat-type feeling for the rookie pitcher and the Marlins' eighth consecutive win in San Francisco.
"Next to the day when I met my wife, this is probably the happiest day of my life," said Koehler, who was coming off his worst performance of the season. "Definitely my happiest day in baseball."
Shortly after he was able to secure the game ball for his personal archives, Koehler was drenched with a bucket of beer. He, like the Miami basketball players 3,000 miles away, felt like a champion.
"It's great for Miami," he said of the Heat's championship. "Hopefully we can bring one of those home, too."
It's a long way from 23-49 to there, but you'll have to excuse Koehler for his enthusiasm after he'd taken a no-hitter into the sixth inning one game after having been torched by the St. Louis Cardinals for eight hits and nine runs in 4 2/3 innings.
Despite losing starting pitcher Chad Gaudin to a right elbow contusion when hit by a Derek Dietrich line drive in the fifth inning, the Giants took a 1-0 shutout into the eighth.
Sandy Rosario, who had held the Marlins hitless for 2 1/3 innings after taking over for Gaudin, walked Miami's Justin Ruggiano to open the eighth and was pulled in favor of Jeremy Affeldt (1-3), who promptly hit Dietrich in the shoulder with his first pitch.
After Adeiny Hechavarria advanced both runners with a bunt, Affeldt got within one out of escaping the jam by striking out pinch hitter Jeff Mathis. However, Ozuna followed with a soft fly to right that fell just in front of Hunter Pence, sending Ruggiano and Dietrich home with the difference-making runs.
"I'm excited," Ozuna said of his 50th hit since making his major league debut April 30. "I was thinking, 'Throw me in, hit a home run. Throw me away, throw my hands at it.' It was away, and I got a hit."
Affeldt admitted being frustrated with the result of what he considered to be a good pitch.
"The pitch I got beat on was a pitch I wanted," he said. "It was exactly where I wanted it, and it still fell in. It's the rut I'm in right now."
In an improbable pitchers' duel between Koehler and San Francisco's Gaudin and Rosario, the clubs had combined for just three hits until Brandon Belt smacked a two-out double off Koehler in the last of the seventh of a 0-0 game.
Before the dust had settled on Belt's slide into second base, Joaquin Arias smacked a triple between Marlins center fielder Ruggiano and right fielder Giancarlo Stanton, allowing Belt to coast home with the first run of the night.
The triple extended Arias' hitting streak to a career-best 11 games.
Koehler struck out Nick Noonan to end the seventh and left for the pinch hitter in the top of the eighth. He gave up just one run on three hits, walking three and striking out three.
"It's nice for us to get that big hit and score a couple of runs and get him the win," Marlins manager Mike Redmond said. "We didn't get a lot of hits, but we did get that one big one."
Chad Qualls threw a 1-2-3 eighth for Miami. Steve Cishek recorded his 11th save by working a scoreless ninth, though his streak of retiring 17 consecutive batters ended on a one-out single by Buster Posey.
The Marlins out-hit the Giants 5-4.
Gaudin gave up just two hits and two walks in 4 1/3 innings before leaving the game.
"Just deal with it and get ready for the next start," Gaudin said after X-rays were negative. "I'm sure it's going to be sore, but it's all basically muscle and tissue. Just get it worked out, take care of it and I should be back out there."
NOTES: The Marlins were coming off a three-game series in Arizona in which neither team scored more than three runs in any game. Miami opened that series with a dramatic 3-2 win before losing the final two games. ... As well as Koehler, the Marlins started three position players who had never faced the Giants before -- second baseman Dietrich, shortstop Hechavarria and C Rob Brantly. ... Gaudin, who struck out in his only plate appearance against Koehler, extended his string of at-bats without a hit to 33, tops in the National League. He's 0-for-10 this season. ... RHP Ramon Ramirez, who was designated for assignment by the Giants last week, cleared waivers Thursday and became a free agent. He had an 11.12 ERA in six games with San Francisco this season. ... Giants first-round pick Christian Arroyo, a shortstop from Hernando High in Brookville, Fla., who signed with the club earlier this week, visited AT&T Park for the first time Thursday. The 18-year-old will begin his professional career in the rookie-level Arizona League. ... LHP Barry Zito's 84-year-old father, Joe, died Thursday. Services aren't expected to be held until July, so the San Francisco pitcher's next start -- Saturday against the Marlins -- should not be affected.