David Green and Chili Davis hit home runs and Bill Laskey ended a personal eight-game losing streak as San Francisco won in Pittsburgh in a game marred by a seventh-inning fight.

The Giants' Dan Gladden charged the mound and tackled Pittsburgh pitcher Rick Rhoden after being hit with a pitch. Players streamed out of both dugouts but only Rhoden and Gladden were ejected and play resumed within five minutes.

"He stands as close to the plate as anybody in the league," said Rhoden. "I have to be able to pitch inside. I was surprised to see him coming. That's the first time that's ever happened to me. These things happen when you play competitively."

"He shook the catcher off twice when I was up," said Gladden. "He was telling him where he wanted to throw the ball and it was at me. He knew what he wanted to do. That's the way the game should be played, but I have to do something too."

Laskey (2-11) won for the first time since May 6 when San Francisco beat the Pirates, 7-5. He allowed a pair of first-inning runs, then retired 15 consecutive batters but left the game in the sixth inning with a strained lower back. Mark Davis earned his sixth save.