MIAMI - Matt Cain was angry, and he did more than get even.
Cain pitched seven strong innings, and the San Francisco Giants held on to defeat the Miami Marlins 6-4 Saturday night at Marlins Park.
What had Cain (8-8) upset was a 2-2 sixth-inning pitch to Giancarlo Stanton that was up and in. Stanton went to the turf to avoid getting hit, but Cain thought the Marlins' slugger had made a half-swing before bailing.
Cain did not get the strike call, however, and Stanton drilled the next pitch for a 446-foot, two-run homer to left. It was the only blemish on Cain's otherwise clean sheet that featured a total of four hits, two walks and those two runs.
"I thought he attempted to swing and then got out of the way," Cain said of Stanton. "(The umpire) has a tough call there. It's a judgment thing, spur of the moment."
After Stanton's homer, though, Cain used his anger to strike out the next three batters he faced.
"I can't (pitch angry) the whole game - it's not possible," Cain said. "(But) you can use that emotion (in the short term). I was probably frustrated - I got more mad - because I had chances to get Stanton out."
To his credit, Marlins manager Mike Redmond said he thought Stanton "caught a break" on the check swing.
Cain left the game with a 4-2 lead. The Giants added two runs in the eighth on Pablo Sandoval's bases-loaded walk and Andres Torres' infield single.
The Marlins cut their deficit to 6-4 with a two-run, eighth-inning double by Logan Morrison off of reliever Santiago Casilla. One of the runs was unearned due to a throwing error by shortstop Brandon Crawford.
Sergio Romo earned his 30th save with a scoreless ninth.
The loss went to Henderson Alvarez (2-2), who allowed four hits, four walks and four runs in seven innings.
"I pitched well," Alvarez said. "It was just that one inning (the fourth) that messed up the game."
Alvarez was really good for the first three innings -- one hit, one walk and no runs -- before the Giants scored four times in the fourth.
Brandon Belt, whose 11-game hit streak ended, started the rally with a one-out walk. He reached second on a Buster Posey single and both runners advanced on a wild pitch.
Alvarez then made another mistake when he was late covering first, resulting in Sandoval's run-scoring infield hit. Sandoval was momentarily shaken up on the play after he dived for the bag, but he remained in the game.
Giants manager Bruce Bochy said Sandoval hit his chin "pretty hard" on the play but was otherwise fine.
"That was great hustle by Pablo," Bochy said. "It probably won the game for us because it kept the rally going."
Redmond said Alvarez and first baseman Morrison share responsibility on the play.
"Henderson definitely was late getting off the mound," he said. "But he did make up the ground. I think once (Morrison) saw he was late, he just put his head down and decided to see if he could beat him to the bag. Henderson did look like he made it over there in time. Unfortunately, it didn't work out for us."
Another Alvarez breakdown led to a run when a balk scored Posey. Gregor Blanco capped the rally with a two-run triple to center that eluded diving center fielder Jake Marisnick. It was Blanco's fifth triple of the season.
Cain was perfect for the first three innings, needing just 28 pitches to get nine outs. But Christian Yelich led off the fourth with a single to left and Cain walked two batters to load the bases with two outs. Yelich escaped the jam unscathed when he got Adeiny Hechavarria to hit a comebacker.
NOTES: Giants 2B Marco Scutaro left the game in the sixth inning with a tight lower back. ... Posey, who was rested Friday, was back in the starting lineup. ... Marlins 3B Placido Polanco, who was hit on the back of the batting helmet with a fastball on Friday night, did not start Saturday. Polanco said he feels a bit "off balance". However, he doesn't have a headache and could return Sunday. Polanco also said it was much worse in 2006 when he was out one week after getting hit in the face by a pitch from Esteban Loaiza. ... After coming off the bench and hitting two homers and driving in four runs on Friday night, Justin Ruggiano found himself on the bench again Saturday. But Ruggiano, who was not demoted to the minors earlier this year when he fell into a 0-for-42 slump, said he is loyal to Marlins manager Mike Redmond and won't question his lineup choices. ... The top five hitters in the Giants' order on Friday combined for 16 hits. The last time the franchise accomplished that was in 1933. ... Friday's game was the first since 1900 in which both starting pitchers allowed at least 10 hits and eight runs and were gone after four innings.