Sanchez (4-1) allowed five hits, struck out eight and walked two in his third career shutout and his second complete game this season for the Marlins, who swept the three-game series with the Giants and have won five of their last six overall.
The Marlins scored in the sixth when Chris Coghlan led off with a double, took third on a sacrifice bunt by Emilio Bonifacio and then scored on a single by Morrison.
Ryan Vogelsong (3-1) went eight innings, allowing eight hits and one walk while striking out three.
The loss came the same day as the Giants learned catcher Buster Posey may miss the remainder of the season with a broken leg, sustained in Wednesday's 12-inning, 7-6 loss to Florida.
Toddler uninjured after being knocked over by Obama family dog
Texas principal bans speaking Spanish, stirs controversy