Miami trailed by three after the first inning, marking another game of playing catchup.
"It's a tough night for us," Yelich said. "We were kind of in a hole right off the bat. It's kind of been that way this whole year. We're behind a lot. We can't do that; it makes it tough. We just need to do a better job."
Down three in the fourth inning, Yelich provided a spark with a double off Jeff Samardzija. Yelich scored the lone run on Justin Bour's single to center.
"He looks good," manager Don Mattingly said of Yelich. "He's been swinging it all year. He's been seeing the ball good. He's been getting on base all the time, whether it's a walk or a hit. Everything seems to be quality. There are no easy outs with him right now. Hopefully, it continues."
The three hits raised Yelich's batting average to .400, and his on-base percentage has risen to .530, tops in the National League. He's second in the NL in batting to Washington's Daniel Murphy (.411).
In the sixth inning, he doubled again off Samardzija, and in the eighth inning, the Giants went with lefty Javier Lopez.
Yelich ripped a two-base hit to right off the southpaw.
"You just try to put together good at-bats and swing at good pitches," Yelich said. "That's all you can really ask for, and hopefully it will find some holes."
Aside from Yelich, it was a slow night for the Marlins' offense.
Dee Gordon, the reigning NL batting champ, is urging Yelich to keep going. Eventually, the rest of the offense will catch up.
"Keep going. Keep going," Gordon said. "We're all going to play at this level one of these days. Just continue to keep going and keep his head the right direction, and keep going. That's it."
Joe Frisaro has covered the Marlins for MLB.com since 2002. He writes a blog, called The Fish Pond. Follow him on Twitter @JoeFrisaro and listen to his podcast. This story was not subject to the approval of Major League Baseball or its clubs.